1)创建数据库
(一步步运行,先运行创建,再使用,再创建表)
– sql 语句
– create database demo231 – 创建数据库
USE demo231 – 使用数据库
– sql语句
– create table 表名称(
– 列名 列的数据类型
– 列名 列的数据类型
– )
CREATE TABLE t_student(
s_id INT,
s_name VARCHAR(10), – char(10) 区别:var 根据内容占字节 char永远10个字节
s_sex VARCHAR(2),
s_age INT
)
2)删除数据库
删除
DROP DATABASE demo231
DROP TABLE t_student
3)约束
数据完整性:
实体完整性 — 保证每一行数据有效 主键
域完整性 — 保证每一列数据有效 unique 默认 非空
引用完整性— 保证表与表之间数据有效 外键约束 t添加在从表上
用户自定义完整性
– PRIMARY KEY 保证实体完整性
自增长 auto_increment
– NOT NULL 列不为空
– UNIQUE 唯一
– default 默认约束
外键约束 添加在从表上 references
**添加外键约束的表的时候需要先添加主表
**外键约束情况下,先添加主表数据,然后添加从表数据
**先删从表,再删主表
-- 学生表
CREATE TABLE t_student (
s_id INT PRIMARY KEY,
s_name VARCHAR(20),
s_age INT,
s_sex CHAR(4),
s_birthday DATE,
s_ruxuxe DATETIME,
s_classid VARCHAR(20),
CONSTRAINT FOREIGN KEY (s_classid) REFERENCES t_class(c_id) -- 添加外键约束
)
-- 学生表
CREATE TABLE t_student (
s_id INT PRIMARY KEY AUTO_INCREMENT,
s_name VARCHAR(20) NOT NULL,
s_age INT,
s_sex VARCHAR(2) DEFAULT '男',
s_phone VARCHAR(11),
s_xueli VARCHAR(10),
s_birthday DATE
)CHARSET='utf8';
CREATE TABLE t_class(
c_id INT PRIMARY KEY,
c_name VARCHAR(10)
)
-- 先删从表,再删主表
DROP TABLE t_class
DROP TABLE t_student
4)数据操作
<1>添加数据
insert into 表名(列名1,列名2) values (列对应值1,列对应值2)
– insert into 表名(列名1,列名2) values (列对应值1,列对应值2)
INSERT INTO t_class(c_id,c_name) VALUES (1,'一班')
INSERT INTO t_class(c_id,c_name) VALUES (2,'二班'),(3,'三班')
<2>删除数据
delete from 表名 where(条件)AND 并且
delete from t_student where s_sex = '男' and s_name = '张三'
delete from t_student -- 删除数据
删除所有
TRUNCATE 表名
DELETE FROM 表名
delete和truncate的区别如下:
1、delete可以删除表中的一条或多条数据,也可以删除全部数据;而truncate只能将表中的全部数据删除。
2、delete删除表数据后,标识字段不能复用。也就是说如果你把id=10(假如id是标识字段)的那行数据删除了,你也不可能再插入一条数据让id=10.
;truncate删除表数据后,标识重新恢复初始状态。默认为初始值为1,也就是说,truncate之后,再插入一条数据,id=1.
<3>更新数据
UPDATE 表名 SET s_sex = ‘男’ WHERE(条件)
UPDATE t_student SET s_sex = '男' WHERE s_id = 3
<4>查询数据 select as 修改别名 子查询
as 修改别名
子查询,查询学生班级名称和姓名
select s_classid from t_student
模糊查询 列名 like ‘郑%’
<5>操作表结构 一般情况不会用SQL操作表结构
1) 添加字段 —— ADD
ALTER TABLE 表名 ADD 列名 类型
ALTER TABLE student ADD id INT;
2)删除字段 —— DROP
ALTER TABLE 表名 DROP 列名;
ALTER TABLE student DROP COLUMN s_birthday;
3) 修改列类型 —— MODIFY
ALTER TABLE 表名 MODIFY 列名 新的类型;
ALTER TABLE student MODIFY name VARCHAR(50);
4)修改字段——CHANGE
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
ALTER TABLE student CHANGE remark intro VARCHAR(30);
5)修改表名
RENAME TABLE 表名 TO 新表名;
RENAME TABLE student TO student2;
–将学生表student改名成student2
备份表
CREATE TABLE t_student_bak SELECT * FROM t_student
排序order by :
order by 默认是升序
desc: 降序
asc: 升序
返回限定行limit:
limit [offset,] N
offset 偏移量,可选,不写则相当于limit 0,N
N 取出条目
聚合函数
(1)max(列名):求最大值。
(2)min(列名):求最小值。
(2)sum(列名):求和。
(4)avg(列名):求平均值。//不会统计分数为空的
(5)count(列名):统计记录的条数。
表联接 join on
left join :左边的表为主表
right join