目录
数据库操作
DML 数据库的增删改查操作
1.数据库添加数据
2.数据库的修改和删除语句
模糊查询
七大子句概述
0.查看所有数据库
show database
1.创建数据库
create database 数据库名
2.使用数据库
use 数据库名
3.创建表
CREATE TABLE students(
id VARCHAR(6) PRIMARY KEY not null,
name VARCHAR(10),
sex CHAR(2) DEFAULT '女',
age INT,
dep VARCHAR(20) DEFAULT '河南省郑州市'
)
4.给表添加列名,类型为varchar,并且非空
ALTER TABLE students ADD 班级 VARCHAR(50) NOT NULL;
5.修改表中字段名的属性值(不重复的字段名)
ALTER TABLE students MODIFY 字段名VARCHAR(15);
6.修改表中字段名的属性值(重复的字段名)
alert table 表名 change 原名 新名 类型和约束
7.删除表中的字段名
alert table 表名 drop 列名
8.删除数据库(公司里删库跑路的语句 )
drop database 数据库名
9.创建组合键
alter table 表名 add primary key (字段名1,字段名2);
建立一个作为例子的数据表
CREATE TABLE teacher(
tid INT,
tname VARCHAR(5),
age INT,
gender CHAR(5),
salary DOUBLE(8,2)
);
1.添加一条数据
/*
添加数据
insert into 表名
添加数据时,字段类型,长度一定需要一一对应
*/
-- 添加一行数据时(全部字段)
insert into teacher values(1,'胡桃',17,'女',8000.00);
insert into teacher values(2,'青椒肉丝',5,'男',9000.50);
insert into teacher values(3,'云韵',25,'女',31000.00);
2.添加多条数据
insert into teacher values(4,'美杜莎',25,'女',30000.00),
(5,'阿尔法',25,'男',30000.00),
(6,'雅菲',25,'女',31000.00);
3.添加多条数据(部分字段)
-- 添加数据(部分字段)
INSERT INTO teacher(tanme,gender) values('小医仙','女');
INSERT INTO teacher(tanme,gender) values('萧熏儿','女'),('维列那','女');
4.查询当前表的所有数据信息
select * from teacher;
/*
DML-修改表数据
update 表名 set
*/
select * from teacher;
-- 修改表数据,将tname改成云曦,如果不标注条件,默认修改所有数据
update teacher set tname = '云曦';
-- 修改表中的数据,tname 改成石昊 筛选条件 tid = 1
update teacher set tname = '石昊' where tid = 1;
/*
DML-删除表数据
delete from 表名
*/
-- 删除tid为1的行数据()
delete from teacher where tid = 4;
3.删除所有的数据, 但表结构依然存在,操作表结构DDL语句, 将所有的数据一行行进行删除,有多少行,删除多少次,留下表结构
DELETE FROM teacher ;
删除表,截断表的语句
-- 删除所有的数据,但表结构依然存在(截断表)
-- 无论有多少行数据,操作只有两步,1,drop掉,2,建立一个和原表一致的表结构
TRUNCATE teacher;
DQL 单表查询
/*
from子句
表名 --代表查询的数据源
语法
select
字段
from
表名
*/
1.查询所有字段
select * from teaacher;
2.查询部分字段(eid,ename)
select eid,ename from teacher;
3.查询时可以给字段名起别名(仅仅修改的是显示形式,原始数据未修改)AS 可大写,可小写,可省略
select eid,ename AS '名字' from teacher;
4.去重时查询(DISTINCT)
select distinct did from teacher;
5.查询年龄在20到30之间的人
select * from teacher where age < 30 and age > 20;
like
%表示任意多个任意字符
_表示一个任意字符
6.查询名字中带云的人
select * from teacher where ename like '云%';
7.查询姓云并且'名'是一个字的人
select * from teacher where name like '云_';
8.查询名字中带仙字的人
select * from teacher where ename like '%仙%';
1.主键约束:唯一+非空
关键字:primary key
特点:一个表只能有一个主键约束,主键不能重复,不能为空。
create table qin(
qid int primary key,
ename varchar(20)
)
2.自增属性:
给某个字段进行自动赋值(自动增加1)
不能重复,一个表里只能有一个自增属性,且不能单独使用,一般配合主键使用
关键字:auto_increment
create table qin2(
qid int primary key auto_increment,
ename carchar(20)
)
3.唯一约束 关键字: unique key
特点:一个表可以有多个唯一约束,唯一约束可以为空
create table emp03(
qid int primary key auto_increment,
ename varchar(20) unique key,
cardid char(18) union key
)
4.非空约束: 要求字段不许为空
关键字: not null 特点:一个表可以有多个非空约束
CREATE TABLE qin4(
qid INT PRIMARY KEY AUTO_INCREMENT,
qname VARCHAR(20) UNIQUE KEY,
cardid CHAR(18) UNIQUE KEY,
tel VARCHAR(11) NOT NULL
);
5.默认值约束 关键字:default
特点:当添加默认值时,没有指定的值添加为null,可以设定默认值
CREATE TABLE qin5(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20) UNIQUE KEY,
cardid CHAR(18) UNIQUE KEY,
tel VARCHAR(11) NOT NULL,
gender VARCHAR(5) DEFAULT '男'
);
6.检查约束 关键字:check
特点:用来约束该字段值的范围
CREATE TABLE qin06(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20) UNIQUE KEY,
age INT CHECK(age >=0 && age<= 150)
);
7.外键约束
用来限定两个表的关系(主表与从表/父表与子表)
外键建立在从表里面
关键字
foreign key(从表的字段名) references 主表名(被引用字段名)
相关的概念
主表(父表):需要优先存在的表,被引用的表,被依赖的表
部门表
班级表
从表(子表):需要引用其他表的表
员工表
学生表
特点:
1.外键建立在从表,一个表可以有多个外键
2.创建表,先创建主表
3.删除时,先删除从表
4.建立外键,引用时必须引用的是键列(唯一键,主键)
5.从表建立外键时,需要与被引用的键数据类型和逻辑意义保持一致(字段名不一定一致)
-- 创建表,先创建主表
CREATE TABLE dept07(
did INT PRIMARY KEY AUTO_INCREMENT,
dname VARCHAR(20)
);
-- 创建从表(员工表)
CREATE TABLE emp07(
eid INT ,
ename VARCHAR(20),
did INT,
FOREIGN KEY (did) REFERENCES dept07(did)-- 创建外键
);
/*
select 7大子句
书写时一定要按此顺序编写
select
字段列表 -- 代表的是最终查询后显示的字段内容
from
表名 -- 代表的是查询的数据源
on
表名 -- 多表查询(后面具体讲)
where
条件列表 -- 查询过程中需要筛选的条件
group by
分组字段 -- 将查询结果按照一定的字段要求进行分组
having
分组后的条件
order by
排序字段 -- 代表的是排序的依据
limit
分页限定 -- 代表将数据进行分页显示
*/