目录
一、sql一些必备知识
1、SQL语言的功能
(1)数据定义语言(DDL):用于创建、修改和删除数据库对象,如数据库、表、视图、索引等。
(2)数据操作语言(DML):用于插入、查询、更新和删除数据库中的数据。
(3)数据查询语言(DQL):用于从数据库中查询数据,并获取满足指定条件的结果。
(4)数据控制语言(DCL):用于定义数据库的安全性和完整性规则,授权和撤销访问权限。
2、SQL通用数据类型
数据类型 | 描述 |
---|---|
CHARACTER(n) | 字符/字符串。固定长度 n。 |
VARCHAR(n) 或 | 字符/字符串。可变长度。最大长度 n。 |
BINARY(n) | 二进制串。固定长度 n。 |
BOOLEAN | 存储 TRUE 或 FALSE 值 |
VARBINARY(n) 或 BINARY VARYING(n) | 二进制串。可变长度。最大长度 n。 |
INTEGER(p) | 整数值(没有小数点)。精度 p。 |
SMALLINT | 整数值(没有小数点)。精度 5。 |
INTEGER | 整数值(没有小数点)。精度 10。 |
BIGINT | 整数值(没有小数点)。精度 19。 |
DECIMAL(p,s) | 精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2 位数的数字。 |
NUMERIC(p,s) | 精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同) |
FLOAT(p) | 近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成。 |
REAL | 近似数值,尾数精度 7。 |
FLOAT | 近似数值,尾数精度 16。 |
DOUBLE PRECISION | 近似数值,尾数精度 16。 |
DATE | 存储年、月、日的值。 |
TIME | 存储小时、分、秒的值。 |
TIMESTAMP | 存储年、月、日、小时、分、秒的值。 |
INTERVAL | 由一些整数字段组成,代表一段时间,取决于区间的类型。 |
ARRAY | 元素的固定长度的有序集合 |
MULTISET | 元素的可变长度的无序集合 |
XML | 存储 XML 数据 |
二、数据库操作基础命令
1、查看mysql版本
在cmd命令行输入如下命令(V一定要大写):
mysql -V
结果如下:
2、开启和关闭数据库
(1)开启数据库命令
net start mysql服务名
(2)关闭数据库命令
net stop mysql服务名
结果如下:
cmd命令行要以管理员运行这两句代码
(3)手动开启和关闭数据库
在cmd命令行中输入services.msc回车,打开服务管理
3、连接mysql数据库
(1)命令
mysql -h 主机地址 -P 端口 -u 用户名 -p用户密码
(2)结果如下:
4、查看所有数据库
(1)语法
show databases;
(2)结果如下:
5、使用指定数据库
(1)语法
use 数据库名称;
(2)结果如下:
6、创建数据库
(1)语法
create database 数据库名称;
(2)运行结果如下:
7、删除数据库
(1)语法
drop database 数据库名称;
(2)结果如下:
三、表操作基础命令
1、创建表结构
注意:表必备三字段:id, create_time, update_time。其中id必为主键,类型为bigint unsigned、单表时自增、步长为1。create_time, update_time 的类型均为datetime类型。
(1)语法
create table 表名(
字段名1 数据类型1 [约束],
字段名2 数据类型2 [约束],
字段名3 数据类型3 [约束]
);
(2)示例:创建一个学生信息表
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT,
gender ENUM('male', 'female', 'other') NOT NULL,
class VARCHAR(50) NOT NULL
);
结果如下:
2、删除表
(1)语法
drop table 表名;
(2)运行结果如下
3、增加数据
3.1插入数据
(1)insert语法
INSERT INTO students (字段1,字段2,字段3....) VALUES (值1,值2,值3.....);
(2)插入示例结果如下
3.2增加表字段
(1)ALTER语法
#方法一
ALTER TABLE table_name ADD column_name datatype [约束];
#方法二 MySQL将修改指定的数据表,并在指定位置添加新的字段。
alter table 数据表名称 add 新字段名称 字段类型 first|after 其他字段名称;
(2)给学生信息表添加email字段,默认值为 not_provided,示例结果如下
给admin表在username后面增加字段addtime,示例结果如下:
4、查询
4.1列出在这个数据库中的所有表
(1)语法
show tables;
(2)示例运行结果:
4.2查询表中的所有内容
(1)语法
select * from 表名;
(2)示例结果如下:
4.3指定条件查询表中的部分内容
(1)语法
#查询方式有很多,列举两种简单的
select 字段1,字段2 from 表名;
select 字段 from 表名 where 字段名=value;
(2)示例结果如下:
4.4查询表结构
(1)语法
desc 表名;
(2)示例结果如下
5、修改
5.1修改字段类型或字段名称
5.1.1修改字段类型
(1)MODIFY语法
ALTER TABLE 表名 MODIFY 字段名 新数据类型;
(2)原来email类型是VARCHAR(100)修改后是varchar(255)示例结果如下:
5.1.2修改字段的名称
(1)CHANGE
子句语法
ALTER TABLE students CHANGE 旧字段名 新字段名 数据类型 [约束];
(2)示例如下
5.2删除某个字段
(1)语法
alter table 表名 drop 字段名称;
(2)示例结果如下
5.3修改表名
(1)语法
rename table 旧名称 to 新名称;
(2)示例结果如下
6、清空数据表
6.1清空表中的所有数据但保留表结构(即字段、索引等)
(1)TRUNCATE TABLE
语句或不带WHERE
子句的DELETE
语句(二选一)
TRUNCATE TABLE 表名;
DELETE FROM 表名;
(2)示例结果如下