一、数据库管理

  1.create  Database  database_name;

CREATE  {DATABASE | SCHEMA}  [IF NOT EXISTS]  db_name;

[DEFAULT]  CHARACTER SET [=] charset_name

[DEFAULT]  COLLATE [=] collation_name

查看支持的所有字符集:SHOW CHARACTER SET

查看支持的所有排序规则:SHOW  COLLATION

   注意:database_name命名规范

1)首字母不能是字、$、空格、特殊字符、保留字

2)最大128

3)由字母、字、下划线@$

  2.

          SHOW  databases

  3.选择数

          USE  database_name

  4.DROP  DATABASE  database_name

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

  5.修改数据库

ALTER {DATABASE | SCHEMA}  [db_name]

[DEFAULT]  CHARACTER SET [=] charset_name

[DEFAULT]  COLLATE [=] collation_name

 

 

二、表管理

  1.建表

      create  table table_name (性名 型…)

  2.看表结构

    (1)表定信息

DESCRIBE    table_name

DESC    table_name

    (2)详细

              SHOW CREATETABLE table_name

  3.除表

             DROP TABLE table_name

  4.修改表(ALTER TABLE)

    (1)修改表名

ALTER TABLE  老表名  rename 新表名

    (2)增加字段

最后ALTHE TABLE  表名  ADD  性名

第一位置ALTHE TABLE表名  ADD  性名   FIRST

指定字段后ALTHE TABLE  表名ADD  性名    AFTER 性名

    (3)除字段

            ALTHE  TABLE  表名 drop 性名

    (4)修改字段

修改ALTER  TABLE  表名  MODIFY  性名

修改字段名ALTER  TABLE  表名  CHANGE  旧属性名 性名 旧类

修改ALTER  TABLE  表名  CHANGE 旧属性名 性名

修改字段ALTER  TABLE   表名  MODIFY 性名1 FIRSE|AFTER 性名2

 

 

 

三、数据管理

  1.

     (1)INSERT INTO  table_name (field1….field n) VALUES(value1…value n)

    (2) INSERT INTO  table_name (field1….field n)  VALUES(value1value n)…(value11…value mn)

    (3)查询结

INSERT INTO  table_name1 (field11….field 1n)  SELECT  (field21….field 2n)  FROM table_name2  WHERE…

  2.更新

         UPDATE table_name SET field1=value1…fieldn=value n WHERE CONDITION

  3.记录

        DELETE  FROM  table_name  WHERE CONDITION

 

 

 

四、表的约束

  1.置非空(NOT NULL,NK)

CREATE  TABLE  table_name (性名 NOT NULL )

  2.置字段默认值(DEFAULT)

CREATE  TABLE  table_name (性名 DEFAULT 认值)

  3.置唯一(UNIQUE,UK)

CREATE  TABLE  table_name (性名 UNIQUE L )

  4.置主键约(PRIMARY KEY,PK)

字段主CREATE  TABLE  table_name (性名 PRIMARY KEY )

多字段主

        CREATE  TABLE  table_name (性名 ,…CONSTRAINT 束名】 PRIMARY KEY性名,性名…) )

  5.置字段增加(AUTO_INCREMENT)

CREATE  TABLE table_name (性名 AUTO_INCREMENT,… )

  6.置外键约(FOREIGNKEY,FK)

           CREATE  TABLE  table_name (性名 ; 性名 ; CONSTRAINT 键约束名 FOREIGN 性名1REFERENCES 表名(性名2)

 

 

 

五、索引管理

  1.建普通索引

    (1) CREATE TABLE table_name (

    性名 型,性名 型,……性名 型,

                 INDEX | KEY 【索引名】(性名1【(度)】【ASC|DESC】));

           注意:

                1) INDEX KEY参数指定字段索引

                2) 不同存引擎定了表的最大索引和最大索引

                3) Mysql所支持的存引擎表至少支持16索引,索引度至少256

    (2) CREATE INDEX  索引名 ON 表名(性名1【(度)】【ASC|DESC】));

    (3)ALTER TABLE  table_name  ADD INDEX | KEY 索引名(性名1【(度)】【ASC|DESC】)

 

  2.建唯一索引

    (1) CREATE TABLE table_name (

性名 型,性名 型,……性名 型,

            UNIQUE INDEX | KEY【索引名】(性名1【(度)】【ASC|DESC】));

    (2) CREATE UNIQUE INDEX  索引名 ON表名(性名1【(度)】【ASC|DESC】));

    (3) ALTER TABLE  table_name  ADD UNIQUE INDEX | KEY 索引名(性名1【(度)】【ASC|DESC】)

 

  3.建全文索引

    (1) CREATE TABLE table_name (

性名 型,性名 型,……性名 型,

            FULLTEXT INDEX | KEY 【索引名】(性名1【(度)】【ASC|DESC】));

    (2) CREATE FULLTEXT INDEX  索引名 ON表名(性名1【(度)】【ASC|DESC】));

    (3) ALTER TABLE  table_name   ADD FULLTEXT INDEX | KEY 索引名(性名1【(度)】【ASC|DESC】)

 

  4.建多列查询

    (1) CREATE TABLE table_name (

       性名 型,性名 型,……性名 型,

                    INDEX | KEY 【索引名】(性名1【(度)】【ASC|DESC】)

                      …….

        性名n【(度)】【ASC|DESC】));

    (2) CREATE INDEX  索引名

            ON 表名(性名1【(度)】【ASC|DESC】)

          …….

性名n【(度)】【ASC|DESC】));

    (3)ALTER TABLE  table_name

            ADD INDEX | KEY 索引名(性名1【(度)】【ASC|DESC】)

                       …….

性名n【(度)】【ASC|DESC】));

  5.查询索引

EXPLAIN

  6.除索引

         DROP  INDEX  index_name ON table_name

 

 

 

六、视图管理

  1.视图

           CREATE VIEW view_name AS 查询语

  2.视图

     (1)称:USE SHOW TABLES;仅会显示表名,还会显视图

     (2)详细信息SHOW TABLE  STATUS FROM 】【LIKE 关键字’】

     (3)设计信息DESCRIBE|DESC view_name

     (4)统数库:information_schema视图信息的表格views

  3.视图

          DROP VIEW view_name1, view_name1……

  4.修改视图

     (1)建:create OR REPLACE view view_name AS 查询语

     (2)修改句:ALTER VIEW view_name AS 查询语

 

 

 

七、触发器

  1.建有一条语句的触发

       Create  TRIGGER  trigger_name   BEFORE|AFTER  trigger_EVENT  ON  table_name  FOR EACH ROW  trigger_STMT

            trigger_EVENT触发事件,即触发执行的件(DELETEINSERTUPDATE

            FOR EACH ROW:任何一条记录上的操作触发事件都会触发该触发

            trigger_STMT:激活触发器后

  2.建包含多条执句的触发

        Create  trigger  trigger_name

           BEFORE|AFTER  trigger_EVENT

              ON  table_name  FOR EACH ROW

 BEGIN

 trigger_STMT

 END

  3.触发

        SHOW TRIGGERS;

  4.

       DROP TRIGGER   trigger_name;

 

 

 

八、存储过程

       CREATE  PROCEDURE procedure_name([procedure_parameter[,…]]) [characteristic…]  routine_body

   释:

       1) procedure_parameter:存储过程的参数

                [IN|OUT|INOUT] procedure_name type

       2) characteristic:存储过程的特性

       3) routine_bodySQL句主体,可用BEGINEND始和

 

 

 

九、用户相关

  1.命令行连mysql

      mysql –hHOST  –uUSERNAME  –pPASSWD   –e “SQL”

-h:指明所需要连接的主机名称或者地址

-u:指明需要登录的用户名

-p:指明登录该数据库用户的密码

-e:不进入mysql交互界面指明SQL语句

      注意:

1) mysql后接参数可以直接加上数值,无需空格

 `         2) 直接加在-p 参数之后是明文密码,可以不填,在回车后填写不显示格式密码

3) -e参数非登录必须参数

4) 若匿名用户在本机登录该数据库,可以直接输入mysql后回车即可

 

  2.建普通用户账户,赋予权限

    (1) 命令创建用户

            mysql> CREATE USER username [IDENTIFIED BY [PASSWORD] ‘password’]…

 mysql>  FLUSH  PRIVILEGES;

                关键PASSWORD实现对加密

    (2) mysql指定的表中插入用户信息数据

            mysql>  INSERT INTO user(host,user,password) VALUES(‘hostname’,’user’, PASSWORD (‘password’))

mysql>  FLUSH  PRIVILEGES;

        注意:

  1) 由于该语句是向mysql_user入用户账号数据,ssl_cipherx509_issuerx509_subject无默认值些字段

  2) Password字段的一定要用PASSWORD()加密

  3) 刷新授权信息后所创建用户才能生效

    (3)GRANT账户可以对账户赋权

             mysql> GRANT priv_type ON databasename.tablename TO username@"host" [IDENTIFIED BY [PASSWORD] ‘password’]…

  mysql> FLUSH  PRIVILEGES;

      参数说明:

                priv_type:表示权限信息,如selectall privileges… ...

    权限级别:管理权限、数据库、表、字段、存储例程;

                databasename.tablename:表示只能对该表的

*.*:所有库的所有表;

db_name.*:指定库的所有表;

db_name.tbl_name:指定库的特定表;

db_name.routine_name:指定库上的存储过程或存储函数;

                username:所需创建的用户,或者在对已存在的用户进行授权时存在的用户的用户名

                host允许其通过哪些主机远程创建连接;表示方式:IP,网络地址、主机名、通配符(%和_);例如"172.16.%.%"

  

  3.用户权限相关

    (1)查看指定用户所获得的授权:

   mysql>  SHOW GRANTS FOR  'user'@'host'

    (2)回收权限

    mysql>  REVOKE  priv_type, ...  ON  db_name.tbl_name  FROM  'user'@'host';

  注意:

        MariaDB服务进程启动时,会读取mysql库的所有授权表至内存中;

           1) GRANT或REVOKE等执行的权限操作会保存于表中,MariaDB此时一般会自动重读授权表,权限修改会立即生效;

           2) 其它方式实现的权限修改,要想生效,必须手动运行FLUSH PRIVILEGES命令方可;

 

  4.修改root

    (1) mysqladmin命令修改

             mysqladmin –u username –p password “new_password”

    (2)Root用户对密码修改

           mysql> SET PASSWORD=PASSWORD(new_password)

    (3)更新mysql.user表数

    mysql>  UPDATE user SET password= PASSWORD(“new_password”) WHERE user=”root” AND host=”hostname”;

 

  5.利用超更改普通用

        (1) GRANT priv_type ON databasename.tablename  TO username [IDENTIFIED BY [PASSWORD] ‘new_password’]

        (2) SET PASSWORD FOR ‘username’@’hostname’=PASSWORD(“new_password”)

        (3)UPDATE user SET password= PASSWORD(“new_password”) WHERE user=”” AND host=”hostname”;

        (4)入普通用,再SET PASSWORD=PASSWORD(new_password)

 

  6.库备份

        mysql>    Mysqldump  -u username –p  dbname  [table1…table n]  >  backupname.sql

        mysql>    Mysqldump  -u username –p  dbname1…dbname n >  backupname.sql

        mysql>    Mysqldump  -u username –p  --all –databases >  backupname.sql

 

  7.安全加固

         在安装完成后,运行mysql_secure_installation命令;会设置root用户密码,删除测试数据库,删除匿名用户等,以提高数据库的安全性

 

  8.图形管理组件

      phpMyAdmin(运行于lamp架构)NavicatMysql-FrontToadForMySQLSQLyog