mysql 第二天数据_MySQL入门第二天------数据库操作

一、基本命令

1、启动服务器

cmd

net start [服务器名称]

net start mysql57

2、停止服务器

cmd

net stop [服务器名称]

net stop mysql57

3、链接数据库

mysql -u 用户名 -p 登录密码

mysql -u root -p

4、退出登录

quit

exit

\q

5、查看版本(连接后执行)

select version();

6、查看当前时间(连接后执行)

select now();

7、远程链接

mysql -h ip地址 -u 用户名 -p密码 -P服务器端口号(默认3306)

二、数据库操作

1、创建数据库

格式: create database 【数据库名】 charset=utf8;

示例:create database sunck charset=utf8;

2、删除数据库

格式: drop database 【数据库名】;

示例:drop database sunck;

3、切换数据库

格式:use [数据库名]

示例:use sunck;

4、查看当前选择的数据库

select database();

三、表操作(切换到当前数据库后使用)

1、查看当前数据库中所有表

show tables;

2、创建表

格式:create table 表名(列及类型)

说明:auto_increment 表明自增长 primary key 表示主键

not null 表示不为空

示例:create table student(

id int auto_increment primary key,

name varchar(20) not null,

age int not null,

gender bit default 1,

address varchar(20),

isDelete bit default 0

);

3、删除表

格式:drop table 【表名】;

示例:drop table student;

4、查看表结构

格式:desc 【表名】;

示例:desc student;

5、查看建表语句

格式:show create table 【表名】;

示例:show create table student;

6、重命名表名

格式:rename table 元表名 to 新表名

示例:rename table car to newCar;

7、修改表

格式:alter table [表名] add|change|drop 列名 类型;

示例:alter table newCar add isDelete bit default 0;

四、数据操作

1、增

a、全列插入:

格式:insert into [表名] values(...)

说明:主键列是自动增长的,但是在全列插入时需要占位,通常使用0,

插入数据以后以实际数据为准

示例:insert into student values(0,"韩梅梅",15,0,"北京",0);

b、缺省插入:

格式:insert into tablename(column1,column2,.....) values(value1,value2,.....);

示例:insert into student(name,age,address) values ("lilei",19,"上海");

c、同时插入多条数据:

格式:insert into tablename values values(...),(...),...;

示例:insert into student values (0,"穆桂英",28,0,"河南",0),(0,"杨帅",20,1,"河北",0),(0,"刘秀",35,1,"石家庄",0);

2、删

格式:delete from tablename;全部删除,删除整个表的数据

delete from tablename where 条件;

示例:delete from student where id=7;

注意:没有条件是全部删除,慎用。

3、改

格式:update tablename set 列1=值1,列2=值2,....

update tablename set 列1=值1,列2=值2,.... where 条件

示例:update student set age =16 where id=4;

注意:没有条件是全部修改,慎用。

4、查

格式:select * from [tablename];

说明:查询表中的全部数据

示例:select * from student;

五、查

1、基本语法

格式:select * from [tablename];

说明:查询表中的全部数据 a、from 关键字后面是表名,表示数据来源于这张表

b、select 后面写表中的列名,如果是* 表示结果中集中显示表中的所有列

c、在select后面的列名部分,可以使用as为列名起别名,这个别名显示在结果集中

d、如果要查询多个列,之间用逗号分隔

示例:select * from student;

select name,age from student;

select name as "姓名",age from student;

2、消除重复行

在selecthoumian 列前前面使用 distinct 可以消除重复的行

示例:select distinct name,age from student;

3、条件查询

a、语法

select * from 表名 where 条件

b、比较运算符

操作符描述实例

=等号,检测两个值是否相等,如果相等返回true(A = B) 返回false。

<>, !=不等于,检测两个值是否相等,如果不相等返回true(A != B) 返回 true。

>大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true(A > B) 返回false。

>=大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true(A >= B) 返回false。

<=小于等于号,检测左边的值是否小于于或等于右边的值, 如果左边的值小于或等于右边的值返回true(A <= B) 返回 true。

c、逻辑运算符

and

or

not

d、模糊查询

like

% 表示任意多个任意字符

_ 表示一个任意字符

select * from student where name like "刘%";

select * from student where name like "刘_";

e、范围查询

in 表示在一个非连续性的范围内

between... and ... 表示在一个连续范围内

需求:查询编号为8,10,12的学生

示例:select * from student where id in (8,10,12);

需求:查询编号为6-8的学生

示例:select * from student where id between 6 and 8;

f、空判断

insert into student(name,age) values ("daojun",69);

注意:null 与"" 是不同

判断空: is null

判断非空: is not null

需求:查询没有地址的同学

示例: select * from student where address is null;

g、优先级

小括号, not 比较运算符,逻辑运算符

and 比or 优先级高。

4、聚合

为了快速得到统计数据,提供五个聚合函数

a、 count(*) 表示计算总行数,括号中可以写* 和列名

b、 max(列) 表示求此列的最大值

c、 min(列) 表示求此列的最小值

d、 sum(列) 表示求此列的和

e、 avg(列) 表示求此列的平均值

需求:查询学生总数

示例: select count(*) from student;

需求:查询女生的编号最大值

示例: select max(id) from student where gender=0;

需求:查询女生的编号最小值

示例: select min(id) from student where gender=0;

需求:查询女生的年龄和

示例: select sum(age) from student where gender=0;

需求:查询学生年龄平均值

示例: select avg(age) from student;

5、分组

按照字段分组,表示此字段相同的数据会被放到一个集合中。分组后,只能查询出相同的数据列。

对于有差异的数据列,无法显示在结果集中

可以对分组后的数据进行统计,做聚合运算。

语法:select 列1,列2,聚合... from 表名 group by 列1,列2,列3,.... having 列1,列2,.....,聚合...

需求:查询女生和男生总数

示例:select gender,count(*) from student group by gender;

select name,gender,count(*) from student group by gender,age;

需求:分组后的数据筛选

示例: select gender,count(*) from student group by gender having gender;

select gender,count(*) from student group by gender having gender;

where 与 having的区别

where 对from 后面的制定的表进行筛选,属于对原始数据的筛选

having 是对结果集 group by 的结果进行筛选

6、排序

语法: select * from 表名 order by 列1

asc|desc, 列2 asc|desc,....

说明:

a、将数据按照列1进行排序,如果某些列1的值相同,则按照列2进行排序

b、默认按照从小到大的顺序排序

c、asc升序

d、desc降序

需求:按照年龄排序

示例: select * from student order by age;

需求:按照没有删除的数据的年龄排序

示例: select * from student where isDelete=0 order by age desc,id desc;

30987ee07b1932d4aa8cc9f65b166555.png

683d033f50c4c1c5bef1a0990ec55ca2.png

7、分页

语法:select * from 表名 limit start,count;

说明: start索引从0开始

示例:select * from student limit 0,3;

select * from student limit 3,3;

select * from student where gender=1 limit 0,3;

六、关联

外键去关联其他表。

建表语句:

create table class(id int auto_increment primary key, name varchar(20) not null,stuNum int not null);

create table students(id int auto_increment primary key, name varchar(20) not null,gender bit default 1,classid int not null,foreign key(classid) references class(id));

插入数据:

insert into class values(0,"python01",45),(0,"python02",20),(0,"python03",30),(0,"python04",34),(0,"python05",28);

insert into students values(0,"tom",1,1);

insert into students values(0,"lilei",1,1);

insert into students values(0,"jack",1,2);

insert into students values(0,"韩梅梅",0,1);

关联查询

select students.name,class.name from class inner join students on class.id=students.classid;

select students.name,class.name from class left join students on class.id=students.classid;

select students.name,class.name from class right join students on class.id=students.classid;

分类:

1、表A inner join 表B

表示 表A与表B的行会出现在结果集中

2、表A left join 表B

表A与表B的行会出现在结果集中,外加表A中独有的数据,未对应的数据使用null填充

3、表A reft join 表B

表A与表B的行会出现在结果集中,外加表B中独有的数据,未对应的数据使用null填充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 回退查询_MySQL数据库:第十章:分页查询

引入&#xff1a;实际的开发时&#xff0c;一页往往显示不全所有数据&#xff0c;则用到了分页查询语法&#xff1a;select 查询列表 ⑥from 表 ①【join 表 ②on 连接条件 ③where 筛选 ④group by 分组 ⑤having 分组后筛选 ⑦order by 排序列表 ⑧】limit 【起始条目数,】查…

mysql里面取列里面值_在MySQL中获取特定的列值(名称)

要获取特定的列值&#xff0c;请使用LIKE子句。让我们首先创建一个表-mysql> create table DemoTable1809(Name varchar(20));使用插入命令在表中插入一些记录-mysql> insert into DemoTable1809 values(John);mysql> insert into DemoTable1809 values(David);mysql&…

python中lowerright_python字符串,从入门到高阶看这篇就够了

大家都知道&#xff0c;学习新的一门编程语言都是从字符串&#xff0c;到类再到方法以及框架等一个演变的过程&#xff0c;入门到精通&#xff0c;今天我们就来系统的学习了解一下python的字符串&#xff0c;一篇足于。简单的来讲&#xff0c;是什么是python字符串&#xff0c;…

如何打开java_怎样运行java

怎样运行java? 第一步:下载并安装JDK 6.0,安装路劲为: C:\java\jdk1.6 . 第二步:对“我的电脑”按右键,选“属性”,在“系统属性”窗口中选“高级”标签,再按“环境变量”按钮,弹出一个“环境变量”的窗口,在系统变量中新建一个变量,变量名为“JAVA_HOME“,变量值为…

java 字符串匹配_多模字符串匹配算法原理及Java实现代码

多模字符串匹配算法在这里指的是在一个字符串中寻找多个模式字符字串的问题。一般来说&#xff0c;给出一个长字符串和很多短模式字符串&#xff0c;如何最快最省的求出哪些模式字符串出现在长字符串中是我们所要思考的。该算法广泛应用于关键字过滤、入侵检测、病毒检测、分词…

java 超构造函数_java中的超级构造函数

请解释public class Contact {private String contactId;private String firstName;private String lastName;private String email;private String phoneNumber;public Contact(String contactId,String firstName,String lastName,String email,String phoneNumber) {super()…

java lambda max_在Java中使用Lambda表达式查找Max

小编典典该方法Comparator.comparing(…)旨在创建一个Comparator使用基于对象属性的订单进行比较的。当使用lambda表达式i-> i(这是(int i) -> { return i;}此处的简短写法)作为属性提供程序函数时&#xff0c;结果Comparator将比较值本身。这工作时&#xff0c;要比较的…

java 入门程序_自学 Java 怎么入门?

自学Java的确不易&#xff0c;但是有一份好的学习路线图&#xff0c;跟着路线图来一步一步踏踏实实的学下来&#xff0c;相信你也一定可以成为大牛。分享给大家一套学习线路图&#xff0c;内容还是很全面的&#xff0c;每个阶段需要学习的内容罗列的也很清楚&#xff0c;这样学…

java 定义xml_java中web.xml定义详解

1 定义头和根元素部署描述符文件就像所有XML文件一样&#xff0c;必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的D…

java http 异步请求框架_GitHub - huangdali/MyHttpUtils: 一个非常好用的异步网络请求框架...

轻量级网络请求框架MyHttputils 一、前言本版代码大换血&#xff0c;使用了策略模式和构造模式来组织代码&#xff0c;增加了更加人性化的请求构造&#xff0c;代码质量提高、效率显著提升。(但是使用风格基本没变哦)2.0.2版本的基本的用法在《android网络请求框架》一个轻量级…

java set循环取值_java循环遍历类属性 get 和set值方法

//遍历sqspb类 成员为String类型 属性为空的全部替换为“/”Field[] fields sqspb.getClass().getDeclaredFields();for (int i 0; i < fields.length; i) {// 获取属性的名字String name fields[i].getName();// 将属性的首字符大写&#xff0c;方便构造get&#xff0c;…

maven 对于java的要求_如何在Maven中表达对Java EE功能的依赖以过渡到Java 9?

该模块系统讲的无名模块作为在从类路径加载应用的情况下构建模块图的方式。此外&#xff0c;从文档本身来看&#xff1a;当编译器在未命名模块中编译代码&#xff0c;或者调用Java启动程序并将应用程序的主类从类路径加载到应用程序类加载器的未命名模块中时&#xff0c;则将使…

java 应用分模块_在Java 11中创建一个简单的模块化应用教程

模块化编程使人们能够将代码组织成独立的&#xff0c;有凝聚力的模块&#xff0c;这些模块可以组合在一起以实现所需的功能。本文摘自Nick Samoylov和Mohamed Sanaulla撰写的一本名为Java 11 Cookbook - Second Edition的书。在本书中&#xff0c;您将学习如何使用Java 11中的类…

java选课系统_java实现学生选课系统

本文为大家分享了java实现学生选课系统的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下案例要求&#xff1a;学生(学号&#xff0c;姓名&#xff0c;专业&#xff0c;所选课程{<3})老师(工号&#xff0c;姓名&#xff0c;所教课程{<3})课程(课程号&#xff0c…

mysql 推送微信公众号_10分钟完成微信公众号第三方平台全网发布

背景&#xff1a;在微信公众平台配置服务器URL时&#xff0c;使用了新浪云SAE自带的二级域名&#xff0c;提交时出现一个安全风险的警告&#xff0c;网上查了下&#xff0c;许多服务平台和团队也遇到同样的问题。经过一番研究 …为什么会有安全风险的警告&#xff1f;微信公众平…

mysql 查询 带数据库实例_数据库查询实例(包含所有where条件例子)

查询指定列[例1] 查询全体学生的学号与姓名。SELECT Sno&#xff0c;SnameFROM Student&#xff1b;[例2] 查询全体学生的姓名、学号、所在系。SELECT Sname&#xff0c;Sno&#xff0c;SdeptFROM Student&#xff1b;[例3] 查询全体学生的详细记录。SELECT Sno&#xff0c;Sna…

python if and函数_逻辑函数And,OR,IF

越是碎片化时代&#xff0c;越是要进行系统化学习&#xff01;今天7月22日E战到底训练营打卡第十&#xff0c;今天学的是《逻辑函数And,or,if》也是一个非常实用的技能.在许多数据处理中都可以发挥很大作用。一.介绍了逻辑值&#xff1a;true false&#xff0c;分别代表真(成立…

java集合总结_java集合小总结

java集合就是一个容器。1. 集合概述l 为了保存不确定的数据&#xff0c;或者对象&#xff0c;以及保存具有映射关系的数据。l 所有的集合类都位于java.util包下。1.1. 什么是集合&#xff0c;有什么特点&#xff1f;面向对象语言对事物的体现都是以对象的形式存…

java排序算法原理_排序算法原理与实现(java)

排序算法原理与实现(java) Java程序员必知的8大排序 [来源&#xff1a;本站 | 日期&#xff1a;2012年12月24日 | 浏览173 次] 字体:[大 中 小] 8种排序之间的关系: 1&#xff0c; 直接插入排序 (1)基本思想&#xff1a;在要排序的一组数中&#xff0c;假设前面(n-1)[n>2] 个…

python表示当前目录_从Python脚本获取当前目录的父项

使用os.path要获取包含脚本的目录的父目录(无论当前工作目录如何),您需要使用__file__.from os.path import dirname, abspathd dirname(dirname(abspath(__file__))) # /home/kristina/desire-directory基本上,您可以通过根据需要多次调用os.path.dirname来走向目录树.例&…