MySQL常用语句

有时间没更新了,最近在学MySQL数据库,前段时间学的Python,学的稀里哗啦的,人生苦短,为何用Python。这两天整理了一部分最近一周学MySQL数据库的常用语法,后续会再持续更新一部分,望对学习的你有所帮助。Good good study,Day day up

MySQL语句

登陆

登陆本身MySQL

mysql -u root -p    会提示输入密码,验证登陆
mysql -uroot -p密码    会显示密码,直接登陆

登陆别人MySQL

mysql -hPup  连接其他MySQL(h为host主机,P端口号:默认为3306,u:用户名,p:password密码)
mysql -h ip地址 -u root -p  提示输入密码,验证登陆

查看

语句 说明
SHOW DATABASES; 查看展示所有数据库
SHOW TABLES; 查看展示数据库中数据表
SHOW STATUS; 查看服务器状态信息
SHOW STATUS \G; 查看服务器状态信息,并整理
SHOW TABLES STATUS \G; 查看数据表状态信息,并整理
SHOW CREATE DATABASE 库名; 查看创建的数据库
SHOW CREATE TABLE 表名; 查看创建表的语句
SHOW ENGINES; 查看引擎
SHOW VARIABLES LIKE 'deafult_storage_engine'; 查看默认存储引擎
SHOW VARIABLES LIKE 'deafult%'; 查看以'default'为开头的变量
SHOW GRANTS; 查看授权用户(所有用户或特定用户)的安全权限

创建

语句 说明
CREATE DATABASE 库名; 创建数据库
CREATE DATABASE 库名 CHARSET = 'utf8'; 创建库,设置编码为utf8类型
CREATE DATABASE IF NOT EXISTS 库名; 如果库名不存在,则创建
CREATE TABLE 表名(列名1 数据类型 约束条件 注释,列名2 数据类型 约束条件 注释.....); 创建表
CREATE TABLE IF NOT EXISTS 库名(列名1 数据类型 约束 注释,列名2 数据类型 约束 注释....,PRIMARY KEY(列名n))ENGINE = InnoDB DEFAULT CHARSET = 'utf8'; 创建表,如果不存在,将表主键设置为列名n,存储引擎为InnoDB(为默认存储引擎),默认编码设置为'UTF8'

注释: 1.如果你不想字段为NULL,可以设置字段属性为NOT NULL,在操作数据库时如果输入该字段的数据为NULL,就会报错

  • 2.AUTO_INCREMENT 定义列为自增属性,一般用于主键,数值会自动+1,自增时随着前一位列的数值而言
  • 3.PRIMARY KEY 关键字用于定义列为主键,可以直接跟在列后面设置,也可以在数据表末尾说明。也可以使用多列来定义主键,列间用逗号分隔
  • 4.ENGINE 设置存储引擎,CHARSET 设置编码

插入

语句 说明
INSERT INTO 表名(列名1,列名2,列名3...) VALUES(value1,value2,value3...); 数据表中插入单条数据
INSERT INTO 表名(列名1,列名2,列名3...) VALUES(valueA1,valueA2,valueA3...),(valueB1,valueB2,valueB3...); 数据表中插入多条数据

注释: 如果列中约束有NULL或者默认值的,在插入数据中表后面的列可以不跟列名,后面values中同样也不跟值,在输出后,该列会自动显示NULL或者默认值

查询

注: MySQL数据库中查询数据通用为SELECT语法

  • 查询语句中可以使用一个或者多个表,表之间使用','分隔,并使用WHERE语句来设定查询条件
  • SELECT命令可以读取一条或者多条记录
  • 使用'*'来替代其他字段,SELECT语句会返回表中所有列数据
  • 使用'WHERE'语句来包含任何条件
  • 使用'LIMIT'属性来设定返回的记录数
语句 说明
SELECT * FROM 表名; 查询表中所有信息
SELECT 列1,列2,列3... FROM 表名; 查询表中列1,列2,列3...等字段的信息
SELECT * FROM 表名 WHERE 条件; 查询数据表中该条件语句下所有信息
SELECT * FROM 表名 WHERE 列 LIKE 'X%'; 查询列中以'X'开头的所有数据信息
SELECT * FROM 表名 WHERE 列 BETWEEN 'M' AND 'N'; 查询数据表中列在条件M和N之间的所有数据信息
SELECT * FROM 表名 WHERE 列 in (M,N); 查询数据表中列在固定条件M个N中的所有数据
SELECT DISTINCT 列 FROM 表名; 查询去重值(比如查看都有多大的年龄,年龄中都有同样的20岁,去重后只会显示一个20岁的)
SELECT * FROM 表名 WHERE 列1 >// 查看数据表中范围条件数据
SELECT * FROM 表名 WHERE 列 = 值1 OR 列 = 值2; 查询数据表中条件不同值的数据
SELECT * FROM 表名 ORDER BY 列; 查询数据表中值通过列排序结果
SELECT * FROM 表名 ORDER BY 列 DESC; 查询表下排序结果降序
SELECT * FROM 表名 LIMIT M; 查询表下数据范围,前M行字段数据
SELECT * FROM 表名 LIMIT M,N; 查询从M行开始下的N行数据
SELECT name as zzz FROM 表名; 别名查询表下数据

注: 上述'*'均可由数据表中列替换,若要查找几项列的信息,则列之间用','隔开;如:SELECT 列1,列2,列3...FROM 表 WHERE 条件;

修改

注: MySQL数据表中修改或更新数据,通常使用UPDATE语句

  • 可以同时更新一个或多个字段
  • 可以在WHERE条件中指定任何条件列的修改
  • 可以在一个单独表中同时更新数据
  • 可以更新数据表中所有数据
语句 说明
UPDATE 表名 SET 列名1 = 值1; 将表中所有信息的列1都进行修改
UPDATE 表名 SET 列1 = 新值1,列2 = 新值2... WHERE 条件 将表中特定条件的列信息修改;修改特定的列内容,WHERE后面跟条件语句,后跟条件语句和查询语句句式一样
UPDATE 表名 SET 列 =REPLACE(lie,'old_sting','new_string') WHERE 条件; 将条件语句下列中特定字符串改为其他字符串
ALTER TABLE 表名 MODIFY 列名 新数据类型 新约束 新注释; 修改列数据类型,约束

添加

语句 说明
ALTER TABLE 表名 ADD 列名 数据类型 约束 注释; 添加列
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 约束 注释; 新增列
ALTER TABLE 表名 ADD 新增列名 数据类型 约束 注释 AFTER 列名N; 新增列在列N之后

ALTER TABLE 表名 ADD 列名 数据类型 约束 注释 FIRST;将列添加到表首

重命名

语句 说明
REMARE TABLE 原表名 TO 新表名; 重命名表
ALTER TABLE 原表名 REMARE 新表名; 重命名表
ALTER TABLE 原表名 REMARE TO 新表名; 重命名表
ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型 约束条件 注释; 重命名列,并对列做修改

删除

删除表时要注意,执行完删除后,数据都会消失

语句 说明
DROP DATABASE 库名; 删除数据库
DROP DATABASE IF EXISTS 库名; 如果数据库存在则删除
DROP TABLE 表名; 删除数据表全部数据和表结构,立刻释放磁盘空间,不管时默认存储引擎InnoDB还是MyISAM
TRUNCATE TABLE 表名; 清楚表中数据,但保留表结构
ALTER TABLE 表名 DROP 列名; 删除表中指定某列
ALTER TABLE 表名 DROP CULUMN 列; 删除指定列
DELETE FROM 表名 WHERE 条件; 删除表中指定该条件的信息(where条件和查询条件句式一样)
  • 注: 当不用该表时,用DROP
  • 当要保留表结构,但要清除表中所有记录时,用TRUNCATE
  • 要删除部分记录时,用DELETE

其他

语句 说明
DESC 表名; 展示表结构
PRIMARY KEY(列) 将列设置为主键,可以在创建表开头使用,也可以在末尾使用
AUTO_INCREMENT 递增,一般用于主键,数值+1,以上一个数值为基础

退出

语句 说明
EXIT/QUIT/\q 退出数据库
                                          蔚蓝天空

你可能感兴趣的:(MySQL常用语句)