您的位置:首页 > 数据库 > MySQL

常用SQL语句(Mysql)总结

2015-09-09 14:58 656 查看
1.库
1)创建数据库:create Database database_name; database_name:(1)首字母不能是数字、$、空格、特殊字符、保留字 (2)最大128字节 (3)由字母、数字、下划线、@和$组成2)查看数据库:show databases;3)选择数据库:use database_name ;4)删除数据库:drop 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 CONDITION3)删除记录:DELETE FROM table_name WHERE CONDITION

5.单表数据查询
1)SELECTfield1,field n FROM table_name
2)避免重复查询:SELECT DISTINCT field1,field n FROM table_name3)四则运算:用AS定义别名,或省略AS关键字4)显示格式查询:SELECT CONCAT(field格式) 【AS 别名】FROM table_name5)条件数据查询: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_COUNT8)统计函数和分组数据记录查询:COUNT()函数、AVG()函数、SUM()函数、MAX()函数、MIN()函数9)分组数据查询:SELECT function() FROM table_nameWHERE CONDITION GROUP BY field10)实现统计功能的分组数据查询:SELECT GROUP_CONCAT(field) FROMtable_nameWHERE CONDITION GROUP BY field11)多字段分组查询:SELECT GROUP_CONCAT(field), function(field) FROMtable_name WHERE CONDITIONGROUP BY field1,field2……fieldn 12)HAVING子句限定分组查询:SELECT function(field) FROM table_name WHERECONDITION GROUP BYfield1,field2……fieldn HAVINGCONTITION

6.多表数据查询:
1)FROM子句利用(,)区分多个表,在WHERE子句中通过逻辑表达式来实现匹配条件
2)FROM子句用 ”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)查询索引:EXPLAIN6)删除索引: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中视图信息的表格views3)删除视图: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:触发事件,即触发执行的条件(DELETE、INSERT、UPDATE) FOR EACHROW:任何一条记录上的操作满足触发事件都会触发该触发器 trigger_STMT:激活触发器后执行语句2)创建包含多条执行语句的触发器 Create trigger trigger_name BEFORE|AFTER trigger_EVENT ON table_name FOR EACH ROW BEGIN trigger_STMT END3)查看触发器:show triggers4)删除: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_body:SQL语句主体,可用BEGIN…END开始和结束

12.函数
CREATE FUNCTIONfunction_name([function_parameter[,…]])
[characteristic…] routine_body function_parameter中每个参数的语法格式:parameter_name type

13.DOS连接mysql:mysql –h hostname|hostIP –p port –uusername –p DatabaseName –e “sql”
直接输入密码:在-p后直接输入密码不用加空格

14.mysql创建普通用户账户
1)CREATEUSER username [IDENTIFIED BY [PASSWORD] ‘password’]…
关键字PASSWORD实现对密码加密
2)INSERT INTO user(host,user,password)VALUES(‘hostname’,’user’, PASSWORD (‘password’));(1)由于该语句是向mysql_user插入用户账号数据,ssl_cipher、x509_issuer、x509_subject无默认值,所以还需要设置这些字段。(2)对于Password字段的值一定要用PASSWORD()函数加密第二步,执行FLUSH PRIVILEGES使账号生效3)GRANT创建账户可以对账户赋权限 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

本文出自 “许鼎的博客” 博客,请务必保留此出处http://xuding.blog.51cto.com/4890434/1693128
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: