1. 数据库的英文单词: DataBase 简称 : DB
1. mysql -uroot -p密码
MySQL退出 exit
用来定义数据库对象:数据库,表,列等。关键字:create, DROP,ALTER ,show等
用来对数据库中表的数据进行增删改。关键字:insert, DELETE, UPDATE 等
用来查询数据库中表的记录(数据)。关键字:select, WHERE 等
#DDL:操作数据库 crud
#c创建
CREATE DATABASE num1;#创建数据库:
CREATE DATABASE IF NOT EXISTS num2;#创建数据库,判断不存在,再创建:
CREATE DATABASE num3 CHARACTER SET utf8;#创建数据库,并指定字符集
CREATE DATABASE IF NOT EXISTS db4 CHARACTER SET gbk;#练习: 创建db4数据库,判断是否存在,并制定字符集为gbk
#r查询
SHOW DATABASES;#查询所有数据库的名称:
SHOW CREATE DATABASE db1;#查询某个数据库的字符集:查询某个数据库的创建语句
#u修改
ALTER DATABASE db1 CHARACTER SET gbk;#修改数据库的字符集
#d删除
DROP DATABASE IF EXISTS dm3;#删除数据库
DROP DATABASE IF EXISTS dm3;#判断数据库存在,存在再删除
DDL:操作表 crud
#r查询
SHOW TABLES;#查询某个数据库中所有的表名称
DESC db2;#查询表结构
#c创建
CREATE TABLE db2(
id INT,
na VARCHAR(20),
age INT,
score DOUBLE(3,2),
birthday DATE,
insert_time TIMESTAMP
);#创建表
#复制
CREATE TABLE db3 LIKE db2;#复制表:
#u修改
#修改表名
ALTER TABLE num RENAME TO age;
#修改表的字符集(相当于utf8,改编码)
ALTER TABLE age CHARACTER SET gbk;
#添加一列
ALTER TABLE age ADD ddo INT;
#修改列名称 类型
ALTER TABLE 表名 CHANGE 列名 新列别 新数据类型;
ALTER TABLE 表名 MODIFY 列名 新数据类型;
#删除列
ALTER TABLE 表名 DROP 列名;
#D(Delete):删除
DROP TABLE 表名;
DROP TABLE IF EXISTS 表名 ;
# DML:增删改表中数据
#查询
SELECT * FROM student;
#添加数据:
INSERT INTO student VALUES(1,"王五",10,99.9,"1998-08-12",NULL);
INSERT INTO student VALUES(2,"王六",20,88.8,"1998-08-12",NULL);
INSERT INTO student VALUES(3,"王七",30,77.7,"1998-08-12",NULL);
INSERT INTO student VALUES(4,"王八",40,66.6,"1998-08-12",NULL);
INSERT INTO student VALUES(5,"王九",50,55.5,"1998-08-12",NULL);
#删除
DELETE FROM student WHERE id=5;
#修改
UPDATE student SET id=4 WHERE id=1;
#DQL:查询表中的记录
#查询
SELECT * FROM student;
#基础查询,字段的查询
SELECT age,score FROM student;
-- 查询年龄大于等于20 小于等于40
SELECT * FROM student WHERE age >= 20 && age <= 40;
-- 查询姓名中包含德的人
SELECT * FROM student WHERE NAME LIKE '_七';
-- 排序查询(倒序)
SELECT *FROM student ORDER BY AGE COUNT;
#聚合函数:将一列数据作为一个整体,进行纵向的计算。
#count:计算个数
SELECT COUNT(age) FROM student;
#max:计算最大值
SELECT MAX(age) FROM student;
#min:计算最小值
SELECT MIN(age) FROM student;
#sum:计算和
SELECT SUM(age) FROM student;
#avg:计算平均值
SELECT AVG(age) FROM student;
#分组查询 GROUP BY
SELECT * FROM GROUP BY NAME;
-- 按照性别分组。分别查询男、女同学的平均分 GROUP BY
SELECT sex , AVG(math) FROM student GROUP BY sex;
#分页查询 LIMIT
#公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数
SELECT * FROM student LIMIT 0,3; -- 第1页
#约束
#主键约束:primary key
#创建非空且唯一,一张表只能有一个字段为主键,主键就是表中记录的唯一标识
CREATE TABLE stu(
id INT PRIMARY KEY,-- 给id添加主键约束
NAME VARCHAR(20)
);
#删除主键
ALTER TABLE stu DROP PRIMARY KEY;
#非空约束:not null,某一列的值不能为null
创建表时添加约束
CREATE TABLE stu(
id INT,
NAME VARCHAR(20) NOT NULL -- name为非空
);
#创建表完后,添加非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
#删除name的非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20);
#唯一约束:unique,某一列的值不能重复
#在创建表时,添加唯一约束
CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE -- 手机号
);
#删除唯一约束
ALTER TABLE stu DROP INDEX phone_number;
#在表创建完后,添加唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
#外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。
#在创建表时,可以添加外键
CREATE TABLE 表名(
....
外键列
CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCES 主表名称(主表列名称)
);
#删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
#创建表之后,添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
|
|