对服务器命令
-
显示当前服务器版本
SELECT VERSION();
-
显示当前日期时间
SELECT NOW();
-
显示当前用户
SELECT USE();
-
显示当前使用数据库
SELECT DATABASE();
对数据库命令
-
创建数据库
CREATE DATABASE db_name CHARACTER SET[=]charset_name;
-
查看创建好的数据库
SHOW CREATE DATABASE db_name;
-
查看当前所有数据库列表
SHOW DATABASES;
-
打开数据库
USE db_name;
-
修改数据库
ALTER DATABASE db_name [DEFAULT] CHARACTER SET[=]charaet_name;
-
删除数据库
DROP DATABASE [IF EXISTS] db_name ;
-
查看系统支持的引擎
SHOW ENGINES;
对数据库的表的命令
-
创建数据表
CREATE TABLE [IF NOT EXISTS] table_name(column_name1 data_type,column_name2 data_type);
-
查看指定数据库的表
SHOW TABLES FROM db_name [LIKE '条件' | WHERE 表达式];
-
查看数据表结构
-- 方法一 SHOW COLUMNS FROM tbl_name [FROM db_name]; -- 方法二 DESCRIBE 表名; DESC 表名;
-
添加表中新字段
ALTER TABLE 表名 ADD 列名 数据类型(范围);
-
修改表中新字段
ALTER TABLE tbl_name CHANGE 旧列名 新列名 新数据类型; -- 修改crm_pms 表中address字段,改为add字段,查看该表结构 ALTER TABLE crm_pms CHANGE address add VARCHAR(30); DESC crm_pms;
-
删除一个字段
ALTER TABLE 表名 DROP 列名; -- 删除crm_pms表中的add字段 ALTER TABLE crm_pms DROP add; DESC crm_pms;
-
删除数据表
DROP TABLE [IF EXISTS] 表名; -- 删除crm_pms表 DROP TABLE crm_pms;
对表中数据的命令
-
主键约束
-
语法格式
#创建数据表时添加列级别主键约束 CREATE TABLE 表名( 列名1 数据类型(数据范围) PRIMARY KEY, 列名2 数据类型(数据范围) PRIMARY KEY ); -- 创建数据表时添加表级别唯一约束,可以多个主键约束 CREATE TABLE 表名( 列名1 数据类型(数据范围), 列名2 数据类型(数据范围) , PRIMARY KEY(列名1,列名2) );
-
修改表时添加主键约束
ALTER TABLE 表名 ADD PRIMARY KEY(列名1,列名2);
-
删除主键约束
ALTER TABLE 表名 DROP PRIMARY KEY;
-
-
唯一约束
-
语法格式
-- 创建数据表时添加列级别主键约束 CREATE TABLE 表名( 列名1 数据类型(数据范围) PRIMARY KEY, 列名2 数据类型(数据范围) UNIQUE [KEY], 列名2 数据类型(数据范围) UNIQUE [KEY] ); -- 创建数据表时添加表级别唯一约束 CREATE TABLE 表名( 列名1 数据类型(数据范围), 列名2 数据类型(数据范围) , UNIQUE KEY(列名1,列名2) );
-
修改表时添加唯一约束
ALTER TABLE 表名 ADD UNIQUE KEY(列名1,列名2);
-
删除唯一约束
ALTER TABLE 表名 DROP INDEX 约束名称;
-
查看某张表中全部的索引
SHOW KEYS FROM 表名;
-
-
默认值约束
-
语法格式
CREATE TABLE 表名( 列名1 数据类型(数据范围) PRIMARY KEY, 列名2 数据类型(数据范围) UNIQUE [KEY], 列名2 数据类型(数据范围) DEFAULT 参数值 );
-
修改表时添加默认值
ALTER TABLE 表名 MODIFY 列名 数据类型 DEFAULT 默认值;
-
删除默认值
ALTER TABLE 表名 MODIFY 列名 数据类型 DEFAULT NULL; ALTER TABLE 表名 MODIFY 列名 数据类型;
-
-
非空约束
-
语法格式
CREATE TABLE 表名( 列名1 数据类型(数据范围) PRIMARY KEY UNIQUE [KEY], 列名2 数据类型(数据范围) UNIQUE [KEY], 列名2 数据类型(数据范围) DEFAULT 参数值, 列名2 数据类型(数据范围) NOT NULL );
-
修改表时添加非空约束
ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NUL
-
删除非空约束
ALTER TABLE 表名 MODIFY 列名 数据类型;
-
-
外键约束
-
语法格式
CREATE TABLE 表名1( 列名1 数据类型(数据范围) PRIMARY KEY, 列名2 数据类型(数据范围) UNIQUE [KEY], 列名3 数据类型(数据范围) DEFAULT 参数值, 列名4 数据类型(数据范围) NOT NULL ); CREATE TABLE 表名2( 列名1 数据类型(数据范围) PRIMARY KEY, 列名2a 数据类型(数据范围) UNIQUE [KEY], 列名3 数据类型(数据范围) DEFAULT 参数值, 列名4 数据类型(数据范围) NOT NULL, FOREIGN KEY(列名2a) PEFERENCES 表名1(列名2) );
-
修改表时添加外键约束
ALTER TABLE 子表 ADD CONSTRAINT 约束名称 FOREIGN KEY(列名) PEFERENCES 主表(列名);
-
删除外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 约束名称;
-
-
自动递增
-
添加记录
-
插入语句,指定列插入数据
INSERT INTO 表名(列名1,列名2) VALUES(列值1,列值2),(列值1,列值2); -- 表名中的列名必须和VALUES 中的列值一一对应
-
全部列插入数据
INSERT INTO 表名 VALUES(列值1,列值2); -- VALUES 中的列值,必须和表结构中的列名是对应的
-
-
修改记录(更新语句)
UPDATE 表名 SET 列名1=该列新值,列名2=该列新值 WHERE 条件; -- 如果不指定条件WHERE,将更新表中所有记录
-
删除记录
DELETE FROM 表名 WHERE 条件;
-
查询记录
-
查询全部列的数据
SELECT * FROM 表名;
-
查询指定列数据
SELECT 列名1,列名2, FROM 表名;
-
为列指定别名
SELECT 列名1 AS 别名1,列名2AS 别名2 FROM 表名; -- AS 关键字可以省略
-
去掉重复的列值
SELECT DISTINCT 列名 FROM 表名;
-
分页查询
SELECT 列名 FROM 表名 LIMIT 初始位置,行数; -- 初始位置表示从不那一行开始,是一个可选值,默认值为0 -- 行数表示要查询的行数
-
排序
SELECT 列名 FROM 表名 ORDER BY 列名1 ASC/DESC,列名2 ASC/DESC; -- ASC 升序(默认) -- DESC 降序 -- 如果对多列进行排序的时候,首先进行排序第一列,第一列中必须有相同的列值,才会进行第二列排序
-
条件查询
-
SELECT 列名 FROM 表名
WHERE 条件
ORDER BY 列名1 ASC/DESC,列名2 ASC/DESC;
-- 条件可以包含关系运算符、逻辑运算符、特殊情况等
-- 特殊情况
-- is 是
-- in 在几个选项之中
-- between and在一定范围内
模糊查询
SELECT 列名 FROM 表名
WHERE 列名 LIKE 模糊条件
ORDER BY 列名1 ASC/DESC,列名2 ASC/DESC;
-- 模糊条件:
-- % 表示0个或者多个任意字符
-- _ 表示任意一个字符
数据类型
- 整数
- INT/INTEGER
- 浮点数
- DOUBLE(M,D)
- M表示数字的位数
- D表示小数点后的数字位数
- DOUBLE(M,D)
- 字符型
- CHAR
- 定长字符串类型
- 固定长度的字符串,其存储的右侧总是以空格填
- 最大长的范围:0~255,默认为1
- VARCHAR
- 变长字符串
- 最大长度范围:0~65535
- CHAR
- 日期时间型
- YEAR
- 用于存储2为或4位年份,默认4位年份
- 4位年份范围:1901~2155年
- 2位年份范围
- 1~69表示2069年
- 7099表示19701999年
- DATE
- YYYY-MM-DD
- TIME
- HH:MM:SS
- YEAR