mysql 学习笔记
mysql
mysql语句分类
DDL
-
定义数据库对象 关键字creat,drop,alter
-
操作库
-
创建数据库
- 1.直接创建 CREATE DATABASE 数据库名
- 2.判断创建 CREATE DATABASE IF NOT EXISTS 数据库名
- 3.创建数据库并指定字符集(编码表默认为-UTF): CREATE DATABASE 数据库名 CHARACTER SET 字符集
-
查看数据库
- 1.查看全部创建----SHOW DATABSES
- 2.查看创建单个数据库---SHOW CREAT DATABASE 数据库名
-
修改数据库
- 修改字符集:ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集
-
删除数据库
- DROP DATABASE 数据库名
-
使用数据库
-
查看正在使用数据库
- SELECT DATABASE()
-
使用/切换数据库
- USE 数据库名
-
-
-
操作表
-
创建表
-
CREATE TABLE 表名 (字段名1 字段类型1,字段名2 字段类型2)
-
字段类型
-
-
快速创建一个结构相同的表 --- CREATE TABLE 新表名 LIKE 旧表名
-
-
查看表
- 查看所有表----SHOW TABLES
- 查看某个表内 ---- DESC 表名
- 查看建表语句---SHOW CREATE TABLE 表名
-
删除表
- DROP TABLE 表名
- 判断表是否存在删除表 ---DRAP TABLE IF EXISTS 表名
-
修改表
-
添加列表
- ALTER TABLE 表名 ADD 列名 类型;
-
修改列表类型
- ALTER TABLE 表名 MODIFY 列名 修改新的类型
-
修改表名
- RENAME 表名 TO 新表名
-
删除列
- ALTER TABLE 表名 DROP 列名
-
修改字符集
- ALETER TABLE 表名 CHARACTER SET 字符集
-
-
-
DML
-
对表里的数据进行增删改查 insert delete update
-
插入记录
-
INSER INTO 表名 (字段名1,字段名2,字段名3) VALUES (值1,值2,值3 )
-
蠕虫复制
-
INSERT INTO 表名1 SELECT * FROM 被复制表名2
-
部分复制---- INSERT INTO 表名1 (字段1, 字段2,字段3) SELECT 字段1 字段2 字段3 FROM 被复制表名2
-
-
-
修改更新表的记录
-
不带条件修改数据
- UPDATA 表名 SET 字段名= 值
-
带条件的修改
- UPDATE 表名 SET 字段名= 值 WHERE 字段名 = 值
-
-
删除表的记录
-
不带条件删除
- DELETE FROM 表名
-
带条件的删除
- DELETE FROM 表名 WHERE 字段名 = 值
-
TRUNCATE TABLE 表名
-
-
DQL
-
对数据表进行各种维度的select查询
-
查看插入内容
-
SELECT * FROM 表名
-
查看指定内容---select 字段名1,字段名2 FROM 表名
-
别名查看 ----SELECT 字段名1 AS 别名,字段名2 AS 别名 FROM 表名
- AS 可以省略
-
-
查询清除重复值
- SELECT DISTINCT 字段名 FROM 表名
-
查询结果参与运算
-
某列数值与固定值运算
- SELECT 列名1 + 固定值 FROM 表名;
-
某列数值与其他类数数值运算
-
SELECT 列名1 + 列名2 FROM 表名
- 参与类型必须为数值
-
-
-
where
-
比较运算符
-
<> ,!= 不等于
-
大于
- SELECT * FROM hero WHERE attack > 300;
-
<小于
-
AND,OR,NOT
-
IN()
- SELECT * FROM hero WHERE id IN(1,3,5);
-
-
模糊查询---LIKE
-
SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串'
-
MYSQL 通配符有两个
- %:0和或多个任意字符
- _: 一个字符
-
-
排序查询 ORDER BY
- SELECT 字段名 FROM 表名 WHERE 字段= 值 OREDR BY 字段名 [ASC| DESC],字段名 [ASC|DESC]
- ASC:升序 DESC:降序
-
聚合函数查询
-
会忽略空值
-
五个常见聚合函数
-
count
- 所有记录数 ---为NULL的不统计
-
sum
- 数据数值之和--如果不为数值 和为0
-
max
-
min
-
avg
- 如果不是数值类型 值为0
-
-
SELECT COUNT(*) FROM 表名
-
-
分组查询
-
SELECT 字段1,字段2 FROM 表名 GROUP BY 分组字段 [HAVING 条件]
- having是将分组后的数据进行过滤
- having 后可以使用聚合函数
-
列子---- SELECT SUM(life),sex FROM hero GROUP BY sex;
-
-
LIMIT 语句限制
-
LIMIT OFFEST,LENGTH; 或者 LIMIT LENGTH;
-
OFFSET 指的是偏移量,跳过的记录数,默认为0
-
LENGTH 需要展示的记录数
-
-
-
DCL
- 定义访问权限和安全级别 --关键字 GRANT REVOKE
数据库约束
主键约束
唯一约束
非空约束
约束种类
-
PRIMARY KEY :主键
-
不应用业务字段作为主键
-
主键自增 PRIMATY KEY AUTO_INCREMENT
-
修改起始值
-
-
UNIQUE: 唯一
-
NUT NULL: 非空
-
DEFAULT :默认
-
FOREIGN KEY :外键
所有者权益
部分小知识
启动
- .以管理员身份运行cmd打开dos窗口,输出net start mysql80
登录
- mysql -hip地址 -u用户名 -p密码
数据库管理系统DBMS(DataBase Management System)
- 操作管理控制系统
SQL语句(Structure Query language)
-
结构化查询语句
-
操纵数据库中的数据库,表,数据
-
sql语句分类
- DDL(Data Define Language) ----数据定义语言
- DML(Data Manipulation Language) 数据操作语言
- DQL(Data Query Language) ---数据查询语言
- DCL(Date Control Language) ---数据控制 语言
-
SQL通用语法
-
以分号结尾
-
不区分大小写,建议关键字大写
-