-
一、mysql命令
1.1 mysql的基础命令
-
登录命令:如果在命令行出现了mysql>说明登录成功
-- 会有警告提示,密码是明文的 mysql -uroot -p密码 -- 第二种,在命令行只输入 mysql -uroot -p --回车 -- 会提示输入密码,现在输入密码,是保密的。 enter password:**** -- 对于mysql完整的登录命令 -p密码,-P端口 -h主机名 mysql -uroot -p密码 -P3306 -h127.0.0.1
-
退出mysql:
mysql>exit;
-
查看mysql数据库管理系统中的所有数据库
-- 查看所有的数据库 mysql > SHOW DATABASES;
一般对于刚刚安装的数据库,会有默认的四张表,这四张表能不能删除
-
使用指定的数据库
mysql > USE 库名;
-
查看数据库中所有的表
mysql > SHOW TABLES;
二、数据库结构化查询语句SQL
DDL:数据库定义语言,包含:数据库的创建、数据表的创建、删除数据库、删除数据表、修改数据表。
DML:数据库操作语言,包含:新增数据、删除数据、修改数据
DQL:数据库查询语言,包含:查询数据
DCL:数据库控制语言,用来给组员进行分发权限的
TCL:事务控制语言
2.1 数据库定义语言DDL
-
使用命令行创建数据库
mysql > CREATE DATABASE 数据库名;
-
删除数据库命令
DROP DATABASE db_shop;
-
创建数据库中的表:需要表中的字段,规定字段数据类型
-- 先选择到指定的数据库 USE 数据库名; -- 创建表 CREATE TABLE t_student( s_id int, s_name varchar(30), age int, gender char );
-
查看指定数据库中所有的表
mysql >SHOW TABLES;
-
查看指定表中的表结构
mysql >DESC t_student;
-
删除一张表
mysql > DROP TABLE t_student;
-
复制一张表(只复制结构,不复制数据)
mysql > CREATE TABLE student LIKE t_student;
-
复制一张表,要将数据和结构一起赋值,下午再验证
mysql > CREATE TABLE stu AS (SELECT * FROM t_student);
-
向表中新增一个字段
mysql > ALTER TABLE t_student ADD COLUMN tel VARCHAR(11);
-
修改表中已经存在字段的数据类型
mysql > ALTER TABLE t_student modify gender VARCHAR(10);
-
删除表中的字段
mysql > ALTER TABLE t_student DROP gender;
2.2 数据库操作语言DML
-
向数据库中新增数据
-- 新增语句:INSERT INTO 表名(字段) value(值); INSERT INTO t_student(s_id,s_name,age,tel) value(1,"李四",18,"1100"); -- 如果只有部分数据需要写,那么就新增部分数据即可 INSERT INTO t_student(s_id,s_name) value(2,"张三"); INSERT INTO t_student(s_id,age) value(3,19); -- 如果所新增的数据和表中的字段完全一致(新增的数据和表中字段的个数一致),表名后面可以不跟括号 INSERT INTO t_student value(4,"王五",20,"1200");
-
修改数据
-- 修改数据:UPDATE 表名 SET 字段 = 值;一般是不试用的这种方式,一次性将所有行中对应列的数据修改 UPDATE t_student SET age = 10; -- 根据条件修改数据:UPDATE 表名 SET 字段 = 值 WHERE s_id = 值;常用方式,根据主键修改指定行的数据 UPDATE t_student SET age = 18 WHERE s_id = 1; -- 一次性修改多个字段的值 UPDATE t_student SET age = 28,tel = '1300' WHERE s_id = 2;
-
删除数据
-- 删除数据:DELETE FROM 表名;禁止使用 DELETE FROM t_student; -- 根据条件删除数据 DELETE FROM t_student WHERE s_id = 1;
2.3数据库查询语言DQL(最简单的)
-- 单表简单查询: SELECT * FROM 表名,SELECT * FROM t_student;
三、数据类型
3.1 数据库的数据类型
-
整型
int:最常用的整型
smallint:短整型
bigint:长整型
mediumint:中等整型
tinyint:微整型
-
浮点型
double:双精度浮点型
float:单精度浮点型
decimal(D,M):定点小数
-
字符型
char:定长的字符型
varchar:变长的字符型
两者的区别:char因为是定长的,不管存储的数据长度是多少,都直接给255内存大小,会一定的浪费空间,因为不需要计算开辟的空间大小,节约时间
varchar:因为是变长的,需要执行两次,第一次计算实际需要的内存空间,第二次才会真正的存储数据,会节约内存大小,会消耗时间,一般在设置varchar类型的时候,会给指定长度,用来限制最大空间。
-
字节类型(了解)
BLOB:字节类型
BIGBLOB:大字节文件
-
文本类型
text
-
时间
time:时间
datatime:时间
year:年
四、数据库设计
4.1 键
唯一键:能够唯一识别出一行数据的字段称为唯一键,比如:学号、电话、身份证等。(了解)
主键:从唯一键中选出作为识别一行数据的字段称为主键,一般将id设置主键
候选键:从唯一键中,除了主键的字段,其余字段称为候选键(了解)
外键:一般用来关联表与表中的关系,一个表中的外键,都是另外一张表中主键的值,添加上外键之后,不能在该外键字段中添加除了另外一张表中主键以外的值,如果在外键中使用了数据,另外一张表的对应的主键数据,不能删除。
4.2 约束
- 主键约束:如果将一个字段设置为主键,那么数据库会自动识别是否重复,如果重复将不能存入。主键约束的关键在于不能重复。一般情况下,会将主键设置为自增。
- 外键约束:一个表中外键字段的值,只能是另一一张表中主键存在的值。表与表之间的关系
- 非空约束:如果一个字段设置为非空约束,那么该字段必须有值,不能为null
- 默认值:给指定的字段设置默认值,在新增的时候,如果没有给该字段添加数据,则数据库会自动将默认值填充在该位置。
- 自定义约束:用触发器、存储过程或者函数代码实现约束。
4.3 范式
- 第一范式:保证列的原子性
- 第二范式:保证每一个实体能够被唯一区分出来,可以使用主键来满足第二范式
中外键字段的值,只能是另一一张表中主键存在的值。表与表之间的关系 - 非空约束:如果一个字段设置为非空约束,那么该字段必须有值,不能为null
- 默认值:给指定的字段设置默认值,在新增的时候,如果没有给该字段添加数据,则数据库会自动将默认值填充在该位置。
- 自定义约束:用触发器、存储过程或者函数代码实现约束。
4.3 范式
- 第一范式:保证列的原子性
- 第二范式:保证每一个实体能够被唯一区分出来,可以使用主键来满足第二范式
- 第三范式:保证每一个实体的字段都和主键直接相关,而不是间接相关,如果有相关的数据信息,使用外键进行关联
-
-数据库DDL和DML基础命令
最新推荐文章于 2024-04-01 17:42:33 发布