Mysql常用命令

create Database database_name 创建数据库
create database migu_plus_dev1 default character set utf8;
SHOW DATABASES; 查看数据库
use database_name; 使用数据库
DROP DATABASE database_name; 删除数据库
SHOW ENGINES \G 查看当前Mysql数据库支持的存储引擎;查看当前Mysql数据库支持的存储引擎
在执行SQL语句过程中,可以用; 、\g、\G符号表示语句结束
CREATE TABLE table_name( //创建表
属性名 数据类型,
属性名 数据类型,
,
,
属性名 数据类型,
);
DESCRIBE table_name; 查看表的定义
SHOW CREATE TABLE table_name; 查看表结构的详细定义
DROP TABLE table_name;删除表
ALTER TABLE old_table_name RENAME new_table_name; 修改表名
ALTER TABLE table_name ADD 属性名 属性类型; 表末尾添加字段
ALTER TABLE table_name ADD 属性名 属性类型 FIRST;在表头添加字段
ALTER TABLE table_name ADD 属性名 属性类型 AFTER 属性名;在指定字段后添加字段
ALTER TABLE table_name DROP 属性名; 删除字段
ALTER TABLE table_name MODIFY 属性名 数据类型; 修改字段的数据类型
ALTER TABLE table_name CHANGE 旧属性名 新属性名 旧数据类型; 修改字段的名字
ALTER TABLE table_name CHANGE 旧属性名 新属性名 新数据类型;同时修改

完整性约束:
NOT NULL 字段不能为空
DEFAULT 设置默认字段
UNIQUE KEY 约束字段的值是唯一的
PRIMARY KEY 约束字段为表的主键,可以作为该表记录的唯一标识
AUTO_INCREMENT 约束字段值为自动增加
FOREIGN KEY 约束字段为表的外键
普通索引:
CREATE INDEX <索引名> ON table_name(列的列表); 创建索引
ALTER TABLE table_name ADD INDEX [索引名](列的列表);
CREATE TABLE table_name([…],INDEX [索引名] (列的列表));
唯一性索引(索引列的所有值都只能出现一次):
CREATE UNIQUE INDEX <索引名> ON table_name(列的列表);
ALTER TABLE table_name ADD UNIQUE [索引名](列的列表);
CREATE TABLE table_name([…],UNIQUE [索引名] (列的列表));
———————————————————————————–
Mysql用户与权限:
create user ‘baozq’@’localhost’ identified by ‘baozq123’;
GRANT ALL PRIVILEGES ON *.* TO ‘bzq’@’192.168.0.254’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
ALL PRIVILEGES:表示所有权限
ON:将这些权限应用于哪些库和表,*.*表示所有库和表
TO:将这些权限给哪个用户。bzq表示用户名,@后面表示只允许通过192.168.0.254这个IP访问
IDENTIFIED BY:设定用户密码
WITH GRANT OPTION:允许bzq这个用户将自己拥有的权限再赋予给其他用户

DROP USER bzq@192.168.0.254;删除bzq这个用户
REVOKE SELECT,INSERT ON mysql.* FROM bzq@192.168.0.254;收回权限

source /home/secuser/index_all(2).sql //导入表
LOAD DATA LOCAL INFILE ‘/path/pet.txt’ INTO TABLE pet;
status //查看当前的数据库 select database();
create database usertest_music1 default character set utf8;
SELECT name, birth FROM pet ORDER BY birth DESC;//降序排序 ASC
SELECT name, birth, CURDATE(),TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age FROM pet ORDER BY name;
SELECT name, birth FROM pet WHERE MONTH(birth) = 5;
_ 匹配任何单个字符并%匹配任意数量的字符(包括零个字符)
REGEXP_LIKE()函数:
. 匹配任何单个字符。
字符类[…]匹配括号内的任何字符。例如, [abc]匹配a, b或c。要命名一系列字符,请使用短划线。[a-z] 匹配任何字母,而[0-9] 匹配任何数字。
*匹配前面的事物的零个或多个实例。例如,x* 匹配任意数量的x字符, [0-9]*匹配任意数量的数字,并.*匹配任意数量的任何数字。
如果模式匹配正在测试的值中的任何位置,则正则表达式模式匹配成功。(这与LIKE模式匹配不同,模式匹配仅在模式匹配整个值时才会成功。)
锚定的图案,使得它必须在值的开头或结尾匹配正在测试中,使用^在一开始或$在图案的端部。
SELECT * FROM pet WHERE REGEXP_LIKE(name, ‘^b’);
—————————————————————————————————————————————————————————————-
#从文件读取sql语句
$mysql < file_name
#列的最大值
$select MAX(line_name) from table_name;
数据备份:
mysqldump –all-databases –master-data –single-transaction > back_date.sql
#转储特定的数据库
$mysqldump –databases db1 db2 db3 > dump.sql –databases 使命令行上所有名称被视为数据库名。如果没有此选项,mysqldump将会将第一个视为数据库名,其余视为表名

DDL(Data definition Language) –数据定义语言(CREATE,ALTER,DROP), 管理基础数据,
例如: 库,表
DCL(Data Contol Language) –数据控制语言(GRANT,REVOKE,COMMIT, ROLLBACK),
用户授权,权限回收,数据提交, 回滚等
DML(Data Manipulation Language) –数据操作语言(SELECT,INSERT,DELETE,UPDATE),
针对数据库里的表,记录命令语法: create database <数据库名>
——————————————————————————————————————————————–
增删改查:
INSERT INTO table_name(field1,field2,..fieldN)
VALUES(value1,value2,…valueN);
DELETE FROM table_name [WHERE 表达式]

DDL:
create database xxx charset # 创建数据库 设置字符集
create table xxx (id int,xxxxxx) # 创建表
drop table # 删除表
drop database # 参数数据库
alter table add/drop/modify/change # 表内容修改
create user # 创建用户
drop user #删除用户
DCL:
grant:用户授权
GRANT ALL ON *.* TO ‘clsn’@’localhost’;
SHOW GRANTS FOR ‘clsn’@’localhost’\G
创建用户的同时进行授权
grant select,create,insert,update on clsn.* to ‘clsn’@’10.0.0.%’ identified by ‘123’;
revoke:回收权限
REVOKE INSERT ON *.* FROM clsn@localhost;
收回权限示例:
revoke drop,delete on *.* from sys@localhost;
DML:
insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
update test2 set name=’haha’ where name=’youggilr’;
delete from test; #逻辑删除,一行一行删。
truncate table test; #物理删除,pages(block),效率高。

#查看是否有表被锁
$show open tables where in_use>0;
#锁表
$LOCK TABLES table_name [READ | WRITE]
#解锁
$UNLOCK TABLES;