右键连接名:点击命令行界面 show databases:查看当前连接名服务器下有哪些数据库 select database():查看当前数据库 use 数据库名: 切换数据库 例子:切换数据库cs2209 use cs2209 create database 数据库名:创建数据库 例子:创建数据库bk2209,编码格式为utf8 create database bk2209 charset=utf8 drop database 数据库名: 例子:删除数据库bk2209 drop database bk2209; 表的语句: 创建表注意事项: 1.表必须创建在数据库内 2.每张表至少要有一个列,不然这个表没有意义 3.列在数据库内称为字段,有多少字段就有多少个列 4.每个字段命名要有意义,尽量不要使数字开头和中文 5.每一个字段都要有数据类型的限制 6.字段名不能重复 常见的数据类型: 数值类型: 整形:int 。。。取值范围在+21亿 到-21亿之间 bool值:true(1) 或者false(0) 浮点数:float 只要待小数点都是浮点数。 文本类型:utf8 中,一个中文及中文标点占用3个字符长度的硬盘空间 char:固定字符,最大长度在255 效率比较高 char(10):最大只能占用10个字符长度的硬盘空间,超过10个过后不显示后面的字符, 不超过是10个字符,还是占用10个字符长度的硬盘空间 varchar:可变字符 最大长度在65000左右 效率比较低 varchar(10):最大只能占用10个字符长度的硬盘空间,超过10个过后不显示后面的字符 不超过是10个字符,会按照实际插入数据的字符长度占用硬盘空间 时间类型: 日期:date 2022-02-26 时间:time 10:25:11 datetime:日期时间 2022-02-26 10:25:11 时间戳:timestamp 时间戳 唯一时间单位,以秒为单位。北京时间1970年0分0秒开始到现在的总秒数。 1.创建表语句:create table 表名 (字段1 数据类型 (长度)约束,字段2 数据类型 (长度)约束。。) 例子:创建一张student表 CREATE TABLE student (id INT PRIMARY KEY,name CHAR(10),birthday date) 2.显示当前数据库下的所有表:show tables 3.删除表:drop table 表名 例子:删除cp_stu表 drop TABLE cp_stu 4.alter table 修改表结构 1.修改表名:alter table 原表名 rename 新表名 例子:将student表名修改为studen alter table student rename studen 2.查看表结构:desc 表名 例子:查看studen 表的结构 3.增加字段 alter table 表名 add 字段 数据类型(长度) 例子:增加字段ssex 在最后一列,并设置不允许为空 ALTER TABLE studen add ssex CHAR(10) NOT NULL 4.增加字段在第一列 alter table 表名 add 字段 数据类型(长度)first 例子:新增b字段在第一列 ALTER TABLE studen add b INT FIRST 5.在某个字段后新增字段 alter table 表名 add 字段 数据类型(长度) after 某个字段 例子:新增字段address在ssex字段后,并设置默认值 ALTER TABLE studen add address VARCHAR(20) DEFAULT '长沙' AFTER ssex 6:删除字段 alter table 表名 drop 字段 例子:删除a字段 ALTER TABLE studen drop a 7.修改字段:ALTER TABLE 表名 change 原字段名 新字段名 数据类型长度 例子:将id字段修改为sno ALTER TABLE studen CHANGE id sno INT 8.直接修改字段的数据类型 例子:将sno字段修改为int 并设置自增长 ALTER TABLE studen modify sno INT AUTO_INCREMENT 数据的操作: 1.查询语句 select * from 表名 例子:查询studen表 select * from studen 2.增加数据 insert into 表名 1.插入整行数据 insert into 表名 values(值1,值2。。。) 注意事项。插入的数据值得个数要与字段的个数对应上,及数据类型对应上。 如果是多条数据。每条数据要用逗号隔开 2.插入部分数据 insert into 表名(字段1,字段2.。。)values(值1,值2。。。) 注意事项:插入字段与值,个数与顺序还有数据类型要一致 部分数据插入多条,每条数据要用逗号隔开 3.修改数据:update 表名 set 修改后的值 where条件 例子:将小明的名字修改为小李 UPDATE studen SET name='小李' where name='小明' 4.删除数据 delete from 表名 where 条件 例子:删除表内名字为小李的数据 DELETE FROM studen where name='小李' 遍历删除数据:delete from 表名 例子:遍历 studen 表的数据 delete from studen 情空空表数据:truncate 表名 例子:清空cp_studen 表的数据 TRUNCATE cp_studen 5.创建表数据备份 create table 表名 as 来自与查询的值 例子:创建cp_studen表备份studen 表的数据 CREATE TABLE cp_studen as SELECT * FROM studen 6.插入数据备份 :insert into 表名 来自与查询的值 例子:给表studen 插入 cp_studen的数据 INSERT INTO studen SELECT * FROM cp_studen 查询语句(核心):select * from 表名 通配符*表示所有 例子:查询student1表中的所有数据 select * from student1 例子:查询表中所有的编号和名字 SELECT sno,sname FROM student1 起别名:as 例子:查询表中所有的编号和名字,并取别名 SELECT sno 学号,sname as '姓名' FROM student1 where 条件 例子:查询95033班的所有学生信息 SELECT * FROM student1 where class=95033 例子:查询年龄为20岁的学生姓名,年龄,并取别名 select sname as 姓名, sage as 年龄 from student1 where sage =20 关系运算符:> < >= <= = != 例子:查询年龄大于等于20岁的学生信息 SELECT * from student1 where sage >=20 逻辑运算符:or and not in (beteewn and ) and:并且,当包含多个条件的情况下,必须同时满足每一个条件 例子:查询95033班的男生信息 select * from student1 where class=95033 and ssex='男' 例子:查询不是95033班,年龄不是20岁的学生信息 select * from student1 where class!=95033 and sage!=20 or: 或者 当包含多个条件的情况下,只需满足每一个条件 例子:查询年龄为18岁或者19岁的学生信息 SELECT * from student1 where sage =18 or sage=19 例子:查询95033班年龄为18岁、19岁的学生信息 SELECT * FROM student1 where class=95033 AND (sage=18 or sage=19)(条件的优先级需要加上括号) in: 包含(见里面的条件进行or连接) 例子:查询年龄为18岁、19岁、20岁的学生信息 SELECT * from student1 where sage =18 or sage=19 or sage=20 SELECT * FROM student1 WHERE sage IN(18,19,20) not:条件不成例结果成立 例子:查询年龄不为18岁、19岁、20岁的学生信息 SELECT * from student1 where sage not in(18,19,20) 例子:查询不是95033、与不是95032班学生信息 SELECT * from student1 where class!=95033 and class!=95032 between 起始值 and 结束值(在什么区间内) 例子:查询编号101 到105之间的学生学信 SELECT * from student1 where sno BETWEEN 101 and 105 like:模糊查询 例子:查询表中姓王的学生信息 SELECT * FROM student1 WHERE sname LIKE '王%' 通配符% 表示所有 _ 下划线表示单个字 例子:查询编号在101-105,来自长沙的学生信息 select * from student1 where sno beteewn 101 and 105 and saddress like '%长沙%' 完整的查询语句:select * from 表名 where条件 group by(分组) having(条件) order by (排序) limit(显示行数) order by:排序: asc(升序,默认就是升序,可以不填) desc(降序) 例子:按学号升序查询表中的信息 sELECT * from student1 ORDER BY sno ASC 例子:查询95033班学生信息,按照学好降序查询 sELECT * FROM student1 where class=95033 order by sno desc 例子:查询表内数据,按照年龄升序排序,学号降序排序 select * from student1 order by sage asc ,sno desc 存在多个字段进行排序的情况下,先排序第一个字段 limit: limit x,y x表示显示第几行开始,不填写默认0开始,第一行数据为0 y表示显示几行 例子:查询表中最大编号的学生信息 SELECT * FROM student1 ORDER BY sno DESC LIMIT 1(这种方法只适用于主键字段,主键的属性是非空且唯一) null:表示空值什么都不是,什么都没有,相当于无意义 例子:查询班级为null的学生信息 SELECT * FROM student1 WHERE class is NULL distinct:去重复 查询学生所有的班级即不重复的class 列 SELECT DISTINCT class FROM student1 函数:(使用大聚合函数的情况下查询出来的结果一般是值) min最小值 例子:查询表中的最小年龄 SELECT min(sage) FROM student1 max最大值 例子:查询表中最大的编号 SELECT max(sno) FROM student1 sum 求和 例子:求表中的年龄总和 select sum(sage) from student1 count 计数 例子:统计表中有多少条数据 select count(*) from student1 avg 平均值 例子:查询表中的平均年龄 select avg(sage) from student1 例子:查询表中大于平均年龄的学生信息 select * from student1 where sage>(select avg(sage) from student1)