码迷,mamicode.com
首页 > 数据库 > 详细

常用SQL语句(Mysql)总结

时间:2015-09-09 19:48:14      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:databases   describe   engines   数据库   create   

1.

1create Database  database_name;

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

                       (2)最大128

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

2show databases;

3选择数use  database_name ;

4drop database  database_name;

 

 

2.引擎

1看所支持存引擎:(1)show engines   (2)show variables like ‘have%‘;

2看默的存引擎:show variables like ‘storage_engine%‘;

 

 

3.

1建表:create table table_name (性名…)

2看表结构

(1)表定信息:describe  table_name        desc table_name

(2)详细show  create table  table_name

3除表:drop table  table_name

4)修改表(alter table)

(1)修改表名:alter table  老表名 rename新表名

(2)增加字段:(最后)alter table  表名 add 性名

           (第一位置)alter table  表名 add 性名 first

        (指定字段后)alter table  表名 add 性名 after 性名

 

(3)除字段:alter table  表名 drop 性名

(4)修改字段:

(修改型)alter table  表名 modify 性名

    (修改字段名)alter table 表名change 旧属性名性名旧类

(同修改)alter table 表名change 旧属性名性名

(修改字段序)alter table 表名modify 性名1 FIRSE|AFTER 性名2

 

 

4.据操作

1

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

(2)INSERT INTO  table_name (field1….field n)

VALUES(value1…valuen)…(value11…value mn)

(3)查询结果:INSERT INTO  table_name1 (field11….field 1n)

                  SELECT  (field21….field 2n)

                       FROM table_name2

                          WHERE…

2)更新据:UPDATE table_name SETfield1=value1…fieldn=value n WHERE CONDITION

3记录DELETE FROM  table_name  WHERE CONDITION

 

 

5.查询

  1SELECTfield1,field n FROM table_name

2)避免重复查询SELECT DISTINCT field1,field n FROM table_name

3)四则运算:用AS义别名,或省略AS关键

4示格式查询SELECT CONCAT(field格式) AS 名】FROM table_name

5查询SELECT field1,field n FROM table_nameWHERE CONDITION

         _通配符:匹配一字符

         %通配符:任意度字符

6)排序查询SELECT field1,field n FROM table_nameWHERE CONDITION

                ORDER  BY filedldm1 [ASC|DESC] [,filedldm1 [ASC|DESC],]

7)限制记录查询数量:SELECT field1,field n FROM table_nameWHERE CONDITION

                             LIMIT  OFFSET_START,ROW_COUNT

8统计和分组数记录查询COUNT()AVG()SUM()MAX()MIN()

9)分组数查询SELECT function() FROM table_nameWHERE CONDITION GROUP BY field

10实现统计功能的分组数查询SELECT GROUP_CONCAT(field)  FROMtable_name

WHERE CONDITION GROUP BY field

11)多字段分组查询SELECT GROUP_CONCAT(field), function(field)

FROMtable_name

WHERE CONDITIONGROUP BY field1,field2……fieldn

 12HAVING子句限定分组查询SELECT function(field)  FROM table_name

WHERECONDITION

GROUP BYfield1,field2……fieldn

                                HAVINGCONTITION

 

 

6.多表查询

  1FROM子句利用(,)分多表,在WHERE子句中通过逻辑来实现匹配

  2FROM子句用 ”JOIN ON”ON后接

 

 

7.操作表的

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 性名1

REFERENCES 表名(性名2)

 

 

8.索引

1建普通索引

     (1) CREATE TABLE table_name (

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

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

          注:INDEX KEY参数指定字段索引

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

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

(2)CREATE INDEX  索引名

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

(3)ALTERTABLE  table_name

ADDINDEX | 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

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

3建全文索引、

(1)CREATE TABLE table_name (

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

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

(2)CREATE FULLTEXT INDEX  索引名

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

(3)ALTER TABLE  table_name

ADDFULLTEXT 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)ALTERTABLE  table_name

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

                       …….

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

5查询索引:EXPLAIN

6除索引:DROP  INDEX  index_nameON table_name

 

 

9.视图

1视图reate 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 查询语

 

 

10.触发

1建有一条语句的触发

      Create trigger  trigger_name

        BEFORE|AFTER  trigger_EVENT

          ON table_name  FOR EACH ROW  trigger_STMT

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

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

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


 

11.储过

CREATE  PROCEDUREprocedure_name([procedure_parameter[,…]])

     [characteristic…]  routine_body

(1)procedure_parameter:存储过程的参数

            [IN|OUT|INOUT] procedure_name type

(2)characteristic:存储过程的特性

(3)routine_bodySQL句主体,可用BEGIN…END始和

 

 

12.

      CREATE  FUNCTIONfunction_name([function_parameter[,…]])

             [characteristic…]  routine_body

 function_parameter中每个参数法格式:parameter_name  type

 

 

13.DOSmysqlmysql –h hostname|hostIP –p port –uusername –p DatabaseName –e “sql”

     直接入密:在-p后直接入密不用加空格

 

 

14.mysql建普通用户账户

  1CREATEUSER username [IDENTIFIED BY [PASSWORD] ‘password’]…

             关键PASSWORD实现对加密

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

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

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

第二步,FLUSH PRIVILEGES使账号生效

3GRANT账户可以对账户赋权

              GRANT priv_type ONdatabasename.tablename

                   TO username [IDENTIFIED BY[PASSWORD] ‘password’]…

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

 

15.修改root

(1)mysqladmin–u username –p password “new_password”

   (2)root,再SET PASSWORD=PASSWORD(“new_password”)

(3)更新mysql.user据修改

     UPDATE user SET password= PASSWORD(“new_password”)

         WHERE user=”root” AND host=”hostname”;

 


 

16.利用超更改普通用

 (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”)

 

 

17.库备份

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

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

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

  

 


本文出自 “Linux运维” 博客,请务必保留此出处http://xuding.blog.51cto.com/4890434/1693128

常用SQL语句(Mysql)总结

标签:databases   describe   engines   数据库   create   

原文地址:http://xuding.blog.51cto.com/4890434/1693128

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!