zoukankan      html  css  js  c++  java
  • MySQL

    查看数据库

    SHOW DATABASES;
    

    使用数据库

    USE DATABASESNAME;
    #和q一样,USE命令最后可以不跟分号
    

    查看数据库中的表单

    SHOW TABLES;
    

    显示表列

    SHOW COLUMNS FROM 表列名;
    

    显示表列快捷方式

    DEXCRIBE 表列名;
    

    SHOW显示表列

    SHOW COLUMNS FROM 表列名;
    

    显示广泛的服务器状态信息

    SHOW STATUS;
    

    显示创建特定数据库或表的MySQL语句

    SHOW CREATE DATABASE;
    SHOW CREATE TABLE;
    

    显示授予用户(所有用户或特定用户)的安全权限

    SHOW GRANTS;
    

    显示服务器错误或警告消息

    SHOW ERRORS;
    SHOW WARNINGS;
    
    show命令
    1. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称。
    2. show databases; -- 显示mysql中所有数据库的名称。 
    3. show columns from table_name from database_name; 或show columns from database_name.table_name; -- 显示表中列名称。
    4. show grants for user_name; -- 显示一个用户的权限,显示结果类似于grant 命令。
    5. show index from table_name; -- 显示表的索引。
    6. show status; -- 显示一些系统特定资源的信息,例如,正在运行的线程数量。
    7. show variables; -- 显示系统变量的名称和值。
    8. show processlist; -- 显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。
    9. show table status; -- 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间。
    10. show privileges; -- 显示服务器所支持的不同权限。
    11. show create database database_name; -- 显示create database 语句是否能够创建指定的数据库。
    12. show create table table_name; -- 显示create database 语句是否能够创建指定的数据库。
    13. show engines; -- 显示安装以后可用的存储引擎和默认引擎。
    14. show innodb status; -- 显示innoDB存储引擎的状态。
    15. show logs; -- 显示BDB存储引擎的日志。
    16. show warnings; -- 显示最后一个执行的语句所产生的错误、警告和通知。
    17. show errors; -- 只显示最后一个执行语句所产生的错误。
    18. show [storage] engines; --显示安装后的可用存储引擎和默认引擎。
    

    检索数据SELECT语句

    检索单个列

    SELECT 列名 FROM 表名;
    

    检索多个列

    SELECT 列名1,列名2,...列名N FROM 表名;
    

    检索所有列

    SELECT * FROM 表名;
    

    检索不同行

    SELECT DISTINCT 列名 FROM 表名;
    #返回列中所有不重复的值
    #不能部分使用DISTINCT,应用于所有列
    SELECT DISTINCT 列名1, 列名2...列名N FROM 表名
    #所有列都会被检索
    

    限制结果

    SELECT 列名 FROM 表名 LIMIT 5;
    #返回不多于5行
    #指定检索开始行和结束行
    SELECT 列名 FROM 表名 LIMIT 开始行, 要检索的行数;
    #检索第一行为0,不是1
    #行数不够的时候,只返回它有的那么多行
    

    使用OFFSE替代LIMIT语法

    SELECT 列名 FROM 表名 LIMIT 要检索的行数 OFFSET 开始行;
    #注意,这里开始行和要检索的行数位置不同
    

    使用完全限定的表名

    SELECT products.prod_name FROM products;
    

    表名也可以完全限定

    SELECT products.prod_name FROM crashcourse.products;
    

    排序搜索数据
    排序数据

    SELECT 列名 FROM 表名 ORDER BY 排序列名;
    

    排列多个序

    SELECT 列名 FROM 表名 ORDER BY 排序列名1,排序列名2...;
    #先进行列名1排序,再进行列名2排序...
    

    指定排序方向

    SELECT 列名 FROM 表名 ORDER BY 排序列名1 DESC;
    #以降序排列
    SELECT 列名 FROM 表名 ORDER BY 排序列名1 DESC, 排序列名2;
    #只会对列名1进行降序
    #与DESC相反的是ASC,以升序排序,系统默认是升序的。
    

    通过ORDER BY 和LIMIT 找出列中价值最高的

    SELECT prod_price FROM products ORDER BY prod_price DESC LIMIT 1;
    #得到价值最高的
    

    注意:ORDER BY 必须在LIMIT之前,FROM之后
    过滤数据

    SELECT 列名1,列名2 FROM 表名 WHERE 条件;
    SELECT prod_name,prod_price FROM products WHERE prod_price = 2.50;
    

    WHERE子句在ORDER BY之前
    WHERE子句操作符

    = 等于
    <> 不等于
    != 不等于
    < 小于
    <= 小于等于
    > 大于
    >= 大于等于
    BETWEEN 在指定两个值之间
    检查单个值

    SELECT prod_name.prod_price FROM products WHERE prod_name = 'fises';
    
    SELECT prod_name.prod_price FROM products WHERE prod_price < 10;
    

    不匹配检查

    SELECT vend_id,prod_name FROM products WHERE vend_id <> 1003;
    等于
    SELECT vend_id,prod_name FROM products WHERE vend_id != 1003;
    

    范围值检查

    SELECT prod_name.prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;
    

    空值检查

    SELECT prod_name FROM products WHERE prod_price IS NULL;
    

    数据过滤

    #AND操作符
    SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id = 1002 AND prod)price <= 10;
    #OR操作符
    SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id = 1002 OR prod_price <= 10;
    

    注意:AND操作符的优先级比OR的高,所以如果需要可以对优先级高的部分括号括起来

    SELECT prod_id,prod_price,prod_name FROM products WHERE (vend_id = 1003 OR vend_id = 1002) OR prod_price <= 10;
    

    IN操作符

    #输出1002和1003的所有数据
    SELECT prod_name,prod_price FROM products WHERE vend_id IN (1002, 1003) ORDER BY prod_name;
    #IN操作符比OR操作符清单执行更快
    #IN操作符可以包含其他SELECT语句
    

    NOT操作符

    SELECT prod_name, prod_price FROM products WHERE vend_id NOT IN(1002, 1003) ORDER BY prod_name;
    #只支持对IN, BETWEEN, EXISTS子句取反
    

    用通配符进行过滤

    #LIKE操作符
    #百分号通配符
    #搜索jet开头的任意字符,百分号代表给定位置0个,一个或多个字符
    SELECT prod_id,prod_name FROM products WHERE prod_name LIKE 'JET%';
    #下划线通配符
    #表示给定位置一个字符
    SELECT prod_id,prod_name FROM products WHERE prod_name LIKE '_TON ANVIL';
    

    正则表达式

    #REGEXP后面跟的作为正则表达式
    SELECT prod_name FROM products WHERE prod_name REGEXP '1000' ORDER BY prod_name;
    #输出所有最后跟000的数据
    SELECT prod_name FROM products WHERE prod_name REGEXP '.000' ORDER BY prod_name;
    

    LIKE和REGEXP之间的差别:LIKE搜索的是整个列,如果被匹配的文本在列值中出现,LIKE将不会找到它。REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它
    匹配不区分大小写,如果要区分大小写,用BINARY关键字

    WHERE prod_name REGEXP BINARY '...';
    

    进行OR匹配

    #匹配两个串之一
    SELECT prod_name FROM products WHERE prod_name REGEXP '1000 | 2000' ORDER BY prod_name;
    #WHERE prod_name REGEXP '1000 | 2000 | 3000 | ...'
    

    匹配多个字符之一

    SELECT prod_name FROM products WHERE prod_name REGEXP '[123] Tom' ORDER BY prod_name;
    

    字符集也可以被否定

    SELECT prod_name FROM products WHERE prod_name REGEXP '[^123] Tom' ORDER BY prod_name;
    

    匹配范围

    [1-9]代表1,2,3,4,5,6,7,8,9
    [a-z]代表abcdefghijklmnopqrstuvwsyz
    

    匹配特殊字符

    #匹配有点号的数据,但实际会返回所有数据
    SELECT prod_name FROM products WHERE prod_name REGEXP '.' ORDER BY prod_name;
    #这个实际需要前导\
    SELECT prod_name FROM products WHERE prod_name REGEXP '\.' ORDER BY prod_name;
    

    f 换页
    换行
    回车
    制表
    v 纵向制表

    格式:[:字符类名:]
    字符类名:
    alnum 文字数字字符
    alpha 文字字符
    blank 空白字符
    cntrl 控制字符
    digit 数字字符
    graph 图形字符
    lower 小写文字字符
    print 图形或空格字符
    punct 标点字符
    space 空格、制表符、新行、和回车
    upper 大写文字字符
    xdigit 十六进制数字字符
    

    匹配多个实例

    * 0个或多个匹配
    + 1个或多个匹配
    ? 0个或1个匹配
    {n} 指定数目的匹配
    {n,} 不少于指定数目的匹配
    {n,m} 匹配数目范围(m小于255)

    SELECT prdo_name FROM products WHERE prod_name REGEXP '\([0-9] STICKS?\)' ORDER BY prod_name;
    SELECT prod_name FROM products REGEXP '[[:digit:]]{4}'
    

    定位符

    ^ 文本的开始
    $ 文本的结尾
    [[:<:]] 词的开始
    [[:>:]] 词的结尾

    SELECT prod_name FROM products WHERE prod_name REGEXP '^[0-9\.]' order by prod_name;
    

    创建计算字段
    拼接字段

    #使用Cancat()函数拼接
    SELECT Concat(vend_name, '(', wend)country,')') FROM products ORDER BY vend_name;
    

    使用RTrim()函数来删除数据右侧多余空格

    #使用Cancat()函数拼接
    SELECT Concat(RTrim(vend_name, '(', wend)country,')')) FROM products ORDER BY vend_name;
    

    使用别名

    SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country), ')') AS vend_title FROM vendors ORBER BY vend_name;
    

    执行算术计算

    SELECT id, qu, item, id * qu * item AS iqi FROM  products WHERE num = 20005;
    

    使用函数
    数学函数

    ABS(x) 返回x的绝对值  
    SELECT ABS(-1) -- 返回1
    CEIL(x),CEILING(x) 返回大于或等于x的最小整数  
    SELECT CEIL(1.5) -- 返回2
    FLOOR(x) 返回小于或等于x的最大整数  
    SELECT FLOOR(1.5) -- 返回1
    RAND() 返回0->1的随机数  
    SELECT RAND() --0.93099315644334
    RAND(x) 返回0->1的随机数,x值相同时返回的随机数相同  
    SELECT RAND(2) --1.5865798029924
    SIGN(x) 返回x的符号,x是负数、0、正数分别返回-1、0和1  
    SELECT SIGN(-10) -- (-1)
    PI() 返回圆周率(3.141593)  
    SELECT PI() --3.141593
    TRUNCATE(x,y) 返回数值x保留到小数点后y位的值(与ROUND最大的区别是不会进行四舍五入)  
    SELECT TRUNCATE(1.23456,3) -- 1.234
    ROUND(x) 返回离x最近的整数  
    SELECT ROUND(1.23456) --1
    ROUND(x,y) 保留x小数点后y位的值,但截断时要进行四舍五入  
    SELECT ROUND(1.23456,3) -- 1.235
    POW(x,y).POWER(x,y) 返回x的y次方  
    SELECT POW(2,3) -- 8
    SQRT(x) 返回x的平方根  
    SELECT SQRT(25) -- 5
    EXP(x) 返回e的x次方  
    SELECT EXP(3) -- 20.085536923188
    MOD(x,y) 返回x除以y以后的余数  
    SELECT MOD(5,2) -- 1
    LOG(x) 返回自然对数(以e为底的对数)  
    SELECT LOG(20.085536923188) -- 3
    LOG10(x) 返回以10为底的对数  
    SELECT LOG10(100) -- 2
    RADIANS(x) 将角度转换为弧度  
    SELECT RADIANS(180) -- 3.1415926535898
    DEGREES(x) 将弧度转换为角度  
    SELECT DEGREES(3.1415926535898) -- 180
    SIN(x) 求正弦值(参数是弧度)  
    SELECT SIN(RADIANS(30)) -- 0.5
    ASIN(x) 求反正弦值(参数是弧度)
    COS(x) 求余弦值(参数是弧度)
    ACOS(x) 求反余弦值(参数是弧度)
    TAN(x) 求正切值(参数是弧度)
    ATAN(x) ATAN2(x) 求反正切值(参数是弧度)
    COT(x) 求余切值(参数是弧度)
    字符串函数
    Left() 返回串左边的字符
    Length() 返回串的长度
    Locate() 找出串的一个子串
    Lower() 将串转换为小写
    LTrim() 去掉左边的空格
    Right() 返回串右边的字符
    RTrim() 去掉右边的空格
    Soundex() 返回串的SOUNDEX值
    SubString() 返回子串的字符
    Upper() 将串转换为大写
    日期和时间函数
    CURDATE()或CURRENT_DATE() 返回当前的日期
    CURTIME()或CURRENT_TIME() 返回当前的时间
    DATE_ADD(date,INTERVAL int keyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:> > SELECTDATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH);
    DATE_FORMAT(date,fmt) 依照指定的fmt格式格式化日期date值
    DATE_SUB(date,INTERVAL int keyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:> > SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
    DAYOFWEEK(date) 返回date所代表的一星期中的第几天(1~7)
    DAYOFMONTH(date) 返回date是一个月的第几天(1~31)
    DAYOFYEAR(date) 返回date是一年的第几天(1~366)
    DAYNAME(date) 返回date的星期名,如:SELECT DAYNAME(CURRENT_DATE);
    FROM_UNIXTIME(ts,fmt) 根据指定的fmt格式,格式化UNIX时间戳ts
    HOUR(time) 返回time的小时值(0~23)
    MINUTE(time) 返回time的分钟值(0~59)
    MONTH(date) 返回date的月份值(1~12)
    MONTHNAME(date) 返回date的月份名,如:SELECT MONTHNAME(CURRENT_DATE);
    NOW() 返回当前的日期和时间
    QUARTER(date) 返回date在一年中的季度(1~4),如SELECT QUARTER(CURRENT_DATE);
    WEEK(date) 返回日期date为一年中第几周(0~53)
    YEAR(date) 返回日期date的年份(1000~9999)

    SELECT cust_id,order_num FROM ordre_num WHERE Date(order date) = '2005 - 1 - 2';
    

    聚合函数

    AVG(col)返回指定列的平均值
    COUNT(col)返回指定列中非NULL值的个数
    MIN(col)返回指定列的最小值
    MAX(col)返回指定列的最大值
    SUM(col)返回指定列的所有值之和
    GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果
    对以上聚合函数对执行行计算,指定ALL参数或不给参数(ALL是默认行为,只包含不同的值,指定DISTINCT参数,如果不指定,则假定为ALL)

    SELECT AVG(DISTINCT prod_price) AS AVG_PRICE FROM products WHERE vend_id = 1003;
    #如果指定列名,则DISTINCT只能用于COUNT(),不能用于COUNT(*),因此不允许使用COUNT(DISTINCT),DISTINCT必须使用列名,不能用于计算或表达式
    

    分组数据
    创建分组

    #使用GROUP BY子句中建立
    SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY vend_id;
    

    过滤分组

    SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY vend_id HAVING count(*) >= 2;
    

    FROM 子句, 组装来自不同数据源的数据
    WHERE 子句, 基于指定的条件对记录进行筛选
    GROUP BY 子句, 将数据划分为多个分组
    使用聚合函数进行计算
    使用 HAVING 子句筛选分组
    计算所有的表达式
    使用 ORDER BY 对结果集进行排序
    LIMIT
    外键
    外键为某个表中的一列,它包含另一个表的主键值,定义了两个表之间的关系。
    创建联结

    SELECT vend_name,prod_name,prod_price FROM vendors,products WHERE vendors.vend_id = products.vend_id ORDER BY vend_name,prod_name;
    

    内部联结

    SELECT vend_name,prod_name,prod_price FROM vendor INNER JOIN products ON vendors.vend_id = products.vend_id;
    

    联结多个表

    SELECT prod_name,vend_name,prod_price,quantity FROM orderitems, products, vendors WHERE products.vend_id = vendors.vend_id AND orderitems.prod_id = products.prod_id AND order_num = 20005;
    

    使用AS关键字可以给表起别名
    创建组合查询

    #使用UNION操作符来组合数条SQL查询
    
    SELECT vend_id,prod_id,prod)price FROM products WHERE prod_price <= 5
    UNION
    SELECT SELECT vend_id,prod_id,prod)price FROM products WHERE prod_id IN (1002, 1003);
    #每个查询必须具有相同的列、表达式或聚集函数,不过各个列不需要以相同的次序列出
    #UNION操作符会自动去除重复的行,所以使用UNION ALL取消这种默认
    SELECT vend_id,prod_id,prod)price FROM products WHERE prod_price <= 5
    UNION ALL
    SELECT SELECT vend_id,prod_id,prod)price FROM products WHERE prod_id IN (1002, 1003);
    

    对查询结果进行排序

    SELECT vend_id,prod_id,prod)price FROM products WHERE prod_price <= 5
    UNION
    SELECT SELECT vend_id,prod_id,prod)price FROM products WHERE prod_id IN (1002, 1003);
    ORDER BY
    vend_id,prod_price;
    

    全文本搜索
    创建支持全文本搜索的表

    CREATE TABLE product_notes
    (
    note_id int NOT NULL AUTO_INCREMENT,
    note_date datetime NOT NULL,
    note_text text NULL,
    PRIMARY KEY(note_id),
    FULLTEXT(note_text)
    ) ENGINE=MyISAM; 
    #ENGINE=MyISAM表示支持全文本搜索
    

    进行全文本搜索

    #假设product_notes表中已经有了数据,现在我们来使用全文本查询:
    SELECT note_text FROM product_notes WHERE Match(note_text) Against(‘rabbit’);
    #这条语句检索出note_text字段包含rabbit的行。类似于:
    SELECT note_text FROM product_notes WHERE note_text like ‘%rabbit%’; 
    #两者的区别在于使用like查询仅仅只返回包含‘rabbit’的行,而使用全文本会按’rabbit’在文本中出现的顺序排序
    

    查询扩展

    SELECT note_text FROM product_notes WHERE Match(note_text) Against('rabbit' WITH QUERY EXPANSION); 
    

    布尔文本搜索

    布尔操作符 描述
    + 包含指定值
    - 排除指定值
    > 包含指定值,并且增加优先级值
    < 包含指定值,并且减少优先级值
    () 把词组成表达式
    ~ 取消一个词的排序值
    * 词尾的通配符
    “” 定义一个短语 
    
    SELECT note_text FROM  product_notes  WHERE Match(note_text) Against('+rabbit +fat' IN BOOLEAN MODE);
    #返回的行必须同时包含关键字 rabbit 和 fat
    SELECT note_text  FROM product_notes  WHERE Match(note_text) Against('rabbit -fat' IN BOOLEAN MODE); 
    #没有指定操作符,搜索包含rabbit或good的行(其中的一个或两个)
    SELECT note_text  FROM product_notes  WHERE Match(note_text) Against('"fat rabbit"' IN BOOLEAN MODE);
    

    插入数据
    使用关键字INSERT用来插入数据库表

    INSSERT INTO Customers VALUES(...);
    

    INSERT更安全的方式

    INSSERT INTO Customers(...列名...) VALUES(...列值...);
    

    插入多个列

    INSSERT INTO 
    	Customers(...列名...) 
    		VALUES(...列值...);
    INSSERT INTO 
    	Customers(...列名...) 
    		VALUES(...列值...);
    #或者
    INSSERT INTO 
    	Customers(...列名...) 
    		VALUES(...列值...),
    			VALUES(...列值...); 
    			#这里插入顺序必须一致
    

    插入检索出来的数据

    INSERT INTO customers(...)
    	SELECT ...
    		FROM 表名;
    

    更新或删除数据

    #UPDATE以WHERE结尾,告诉更新哪一行
    UPDATE custerom SET cust_email = '..' WHERE cust_id = 10005;
    

    更新失败取消任务

    #使用IGNORE关键字
    UPDATE IGNORE custerom SET cust_email = '..' WHERE cust_id = 10005;
    

    删除某个列的值

    #删除某个列的值设置为NULl就可以
    UPDATE custerom SET cust_email = NULL WHERE cust_id = 10005;
    

    删除数据

    DELETE FROM custerm WHERE cust_id = 10006;
    #DELETE删除的是整行,不是整列
    

    创建表

    CREATE TABLE customers(
    	cust_id int  NOT NULL,
    	...
    ) ENGINE=InnoDB
    

    创建主键

    PRIMARY KEY (vend_id)
    #主键可以有多个值
    
    CREATE TABLE customers(
    	cust_id int  NOT NULL,
    	PRIMARY KEY (vend_id)
    	...
    ) ENGINE=InnoDB
    

    AUTO_INCREMENT

    #AUTO_INCREMEN代表MySQL会对其自动增量,,每个表只允许一个AUTO_INCREMENT列,必须被索引,一般被用于主键
    CREATE TABLE customers(
    	cust_id int  NOT NULL AUTO_INCREMENT,
    	PRIMARY KEY (vend_id)
    	...
    ) ENGINE=InnoDB
    

    指定默认值

    #DEFAULT指定默认值
    CREATE TABLE customers(
    	cust_id int  NOT NULL DEFAULT 1,
    	PRIMARY KEY (vend_id)
    	...
    ) ENGINE=InnoDB
    

    更新表

    #使用ALTER TABLE语句
    ALTER TABLE 表名 ADD 列名 类型;
    ALTER TABLE vendors ADD vend_phone CHAR(20);
    

    删除列

    ALTER TABLE vendors DROP COLUMN vend_phone;
    

    删除表

    DROP TABLE custers2;
    

    重命名表

    #RENAME TABLE 新名 TO 旧名;
    RENAME TABLE custerom2 TO custerms;
    

    对多个表进行重命名

    RENAME TABLE custerom2 TO custerms,
    	custerom2 TO custerms
    	custerom2 TO custerms
    	custerom2 TO custerms;
    

    创建视图

    #CREATE VIEW关键字用来创建视图
    CREATE VIEW 视图名 AS SELECT语句;
    
    SELECT 列名 FROM 视图名 WHERE ..;
    

    用视图格式化结果

    CREATE VIEW 视图名 AS SELECT Concat(...) FROM...ORDER BY...; 
    

    使用视图过滤不想要的数据

    SELECT 列名 FROM 视图名 WHERE 条件语句;
    

    使用视图与计算字段

    CREATE VIEW 视图名 AS SELECT A, B, C, A + B = c FROM 表名 WHERE 条件语句;
    

    执行存储过程

    CALL 存储过程名字(...);
    或者
    CALL 存储过程名字();
    

    创建存储过程

    #创建存储过程名可以传入变量,在执行的时候使用@ + 变量
    CREATE PROCEDURE 存储过程名()
    BEGIN
    	SELECT语句
    END;
    

    删除存储过程

    DROP PROCEDURE 存储过程名;
    

    使用游标
    创建游标

    CREATE PROCEDURE pro()
    	BEGIN
    		DECLARE ordernumbers CURSOR
    		FOR
    		SELECT order_num FROM ORDER
    END;
    

    打开游标

    OPEN 游标名;
    

    关闭游标

    CLOSE 游标名;
    

    创建触发器

    #只有表才能创建触发器
    CREATE TRIGGER newproduct AFTER INSERT ON products FOR EACH ROW SELECT 'Product added';
    

    删除触发器

    DROP TRIGGER 触发器名;
    

    使用ROLLBACK用来撤销MySQL语句
    查看用户

    USER databasename;
    SELECT user FROM user;
    

    创建用户账号

    CREATE USER ben IDENTUFUED BY 'p@$$word';
    

    重命名账号

    RENAME USER ben FOR bfora;
    

    删除用户

    DROP USER bfora;
    

    设置访问权限

    #查看访问权限
    SHOW GRANTS FOR bfora;
    GRANT SELECT ON crashcourse.* TO bfora;
    允许对crashcourse所有表使用SELECT访问权限
    

    撤销访问权限

    REVOKE SELECT ON crashcourse.* FROM bfotra;
    
    GRANT ALL, REVOKE ALL 对整个服务器进行设置
    整个数据库  ON 数据库名.*
    整个表 ON 数据库名.表名;
    

    更改密码

    SET PASSWORD FOR bftora = Password('new password');
    

    设置自己的密码

    SET PASSWORD = PASSWORD('newpassword');
    

    检查数据库表键是否完整

    ANALYZE TABLE 表名;
    
    CHECK TABLE orders,orderitems;
    
  • 相关阅读:
    第十三周
    意见评论
    第十二周
    冲刺10
    冲刺9
    冲刺8
    团队冲刺第二十二天-KeepRunningAPP
    找水王
    第十四周总结
    搜狗输入法评价
  • 原文地址:https://www.cnblogs.com/changzuidaerguai/p/7144027.html
Copyright © 2011-2022 走看看