1.CURD的含义数据库
C(Create):建立 R(Read):查询 U(Update):修改 D(Delete):删除编码
2.SQL语句分类 spa
1) Data Definition Language (DDL 数据定义语言) 如:建库,建表code
2) Data Manipulation Language(DML 数据操纵语言),如:对表中的记录操做增删改blog
3) Data Query Language(DQL 数据查询语言),如:对表中的查询操做ip
4) Data Control Language(DCL 数据控制语言),如:对用户权限的设置 rem
3.DDL操做数据库 字符串
1)建立数据库 数学
-- 直接建立数据库db1 create database db1; -- 判断是否存在,若是不存在则建立数据库db2 create database if not exists db2; -- 建立数据库并指定字符集为gbk create database db3 default character set gbk;
2)查看数据库 it
-- 查看全部的数据库 show databases; -- 查看某个数据库的定义信息 show create database db3; show create database db1;
3)修改数据库
-- 将 db3 数据库的字符集改为 utf8 alter database db3 character set utf8;
4)删除数据库
-- 删除 db2 数据库 drop database db2;
5)使用数据库
-- 查看正在使用的数据库 select database(); -- 改变要使用的数据库 use db4
4.DDL操做表结构
前提先使用某个数据库
1)建立表
-- 建立 student 表包含 id,name,birthday 字段 create table student ( id int, -- 整数 name varchar(20), -- 字符串 birthday date -- 生日,最后没有逗号 );
2)查看表
-- 查看 day21 数据库中的全部表 use day21; show tables; -- 查看 student 表的结构 desc student;
-- 查看 student 的建立表 SQL 语句 show create table student;
3)快速建立一个表结构相同的表
-- 建立一个s1的表与student结构相同 create table s1 like student; desc s1;
4)删除表
-- 直接删除表s1表 drop table s1; -- 判断表是否存在并删除s1表 drop table if exists s1;
5).修改表结构
-- 为学生表添加一个新的字段 remark,类型为 varchar(20) alter table student add remark varchar(20); -- 将 student 表中的 remark 字段的改为 varchar(100) alter table student modify remark varchar(100); -- 将 student 表中的 remark 字段名改为 intro,类型 varchar(30) alter table student change remark intro varchar(30); -- 删除 student 表中的字段 intro alter table student change remark intro varchar(30); 将学生表 student 更名成 student2 rename table student to student2; 将 student2 表的编码修改为 gbk alter table student2 character set gbk;
5.DML操做表中的数据
1) 插入数据
-- 插入全部的列,向学生表中 insert into student (id,name,age,sex) values (1, 'aa', 20, '男'); insert into student (id,name,age,sex) values (2, 'bb', 16, '男'); -- 插入全部列 insert into student values (3, 'cc', 18, '男', 'zzz'); -- 若是只插入部分列,必须写列名 insert into student values (4, 'dd', 18, '男');
2)更新表记录
-- 不带条件修改数据,将全部的性别改为女 update student set sex = '女'; -- 带条件修改数据,将id号为2的学生性别改为男 update student set sex='男' where id=2; -- 一次修改多个列,把id为3的学生,年龄改为26岁,address改为北京 update student set age=26, address='北京' where id=3;
3)删除表记录
-- 带条件删除数据,删除id为1的记录 delete from student where id=1; -- 不带条件删除数据,删除表中的全部数据 delete from student;
6.DQL查询表中的数据
1)简单查询
-- 查询全部的学生: select * from student; -- 查询 student 表中的 name 和 age 列 select name,age from student;
2)指定列的别名进行查询
-- 使用别名 select name as 姓名,age as 年龄 from student; -- 表使用别名 select st.name as 姓名,age as 年龄 from student as st
3)清除重复值
-- 查询学生来至于哪些地方 select address from student; -- 去掉重复的记录 select distinct address from student;
4)查询结果参与运算
select * from student; -- 给全部的数学加 5 分 select math+5 from student; -- 查询 math + english 的和 select * from student; select *,(math+english) as 总成绩 from student; -- as 能够省略 select *,(math+english) 总成绩 from student;
5)条件查询
-- 查询math分数大于80分的学生 select * from student3 where math>80; -- 查询english分数小于或等于80分的学生 select * from student3 where english <=80; -- 查询age等于20岁的学生 select * from student3 where age = 20; -- 查询age不等于20岁的学生,注:不等于有两种写法 select * from student3 where age <> 20; select * from student3 where age != 20;
-- 逻辑运算符
-- 查询 age 大于 35 且性别为男的学生(两个条件同时知足) select * from student3 where age>35 and sex='男'; -- 查询 age 大于 35 或性别为男的学生(两个条件其中一个知足) select * from student3 where age>35 or sex='男'; -- 查询 id 是 1 或 3 或 5 的学生 select * from student3 where id=1 or id=3 or id=5;
-- in关键字
-- 查询id是1或3或5的学生 select * from student3 where id in(1,3,5); -- 查询id不是1或3或5的学生 select * from student3 where id not in(1,3,5);
-- 范围查询
-- english 成绩大于等于 75,且小于等于 90 的学生 select * from student3 where english between 75 and 90;
-- like模糊查询
-- 查询姓马的学生 select * from student3 where name like '马%'; select * from student3 where name like '马'; -- 查询姓名中包含'德'字的学生 select * from student3 where name like '%德%'; -- 查询姓马,且姓名有两个字的学生 select * from student3 where name like '马_';