数据库 DataBase 数据的仓库 DDL 定义数据库对象语言 数据库,表,列,索引,存储过程等 DML对数据的操作 crud DCL 访问权限控制语言 DQL数据库查询语言 创建数据库 create database g2071; 使用数据库 use g2071; 创建表 create table tb_user(列名1 数据类型[长度],列名2数据类型[长度],...列名 数据类型[长度]) 插入数据 插入的值要与列对应 ,数据类型要一致 insert into 表名(列名1,列名2,列名3...)values(值1,值2,值3...); 删除 delete from 表名 where 条件 单行或多行删除 全表删除 delete from 表名 truncate table 表名 ,仅保留表结构,数据全部清除。注意:事务不可以回滚 drop table 表名。表结构和数据一并删掉,事务不可回滚 更新数据 update 表名 set 列名=值,列2=值2 ... where 条件 查询 单行查询 select * from 表名 where name=‘‘ id=2 多行查询 select * from 表名 模糊查询 like select * from tb_user where name like ‘%雪%‘ 第几个字符是某值,例:第二个字符是雪 _ select * from tb_user where name = ‘_雪‘; and or select * from tb_user where age >=18 and age <=25 select * from tb_user where age =18 or age =25 聚合函数 count:总记录数 sum:求和 avg:平均 max:最大值 min:最小值 排序 order by asc 升序 desc 倒序 分组函数 一个列相同的值只出现一个 group by 配合聚合函数使用 having 分组之后再次过滤数据用的 select from where group by having order by 约束:对数据进行检查验证 主键:primary key auto_increment 非空且唯一 非空:not null 不能为null unique:唯一约束 可以有多个null值,非空的只能有一个 关联关系 表与表之间是有关系的 一对一 人跟身份证 一对多 人跟手机 人跟汽车 多对多 订单与订单明细 学生与课程 关联关系:查询的时候要加上 条件的数量是:N-1 假设有3张表 最少有2个条件 DROP DATABASE g2071; CREATE DATABASE g2071; #学生表 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(30), sex CHAR(3) ) INSERT INTO student(id,NAME,sex)VALUES(1,‘张三‘,‘男‘),(2,‘李四‘,‘男‘); SELECT * FROM student; #课程表 CREATE TABLE kecheng( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(30) ) INSERT INTO kecheng(id,NAME)VALUES(1,‘Java‘),(2,‘MySQL‘); SELECT * FROM kecheng; #成绩表 #定义两个外键 CREATE TABLE score( stu_id INT, kecheng_id INT, score INT, FOREIGN KEY(stu_id) REFERENCES student(id), FOREIGN KEY(kecheng_id) REFERENCES kecheng(id) ) INSERT INTO score(stu_id,kecheng_id,score)VALUES(1,1,90),(1,2,95),(2,1,89),(2,2,99); SELECT * FROM score; #关联表查询 SELECT s.name,k.name,sc.score FROM student s,kecheng k,score sc WHERE s.id = sc.`stu_id` AND k.id = sc.`kecheng_id` AND s.id = 1