常见Sql语句

+编码设置:
|————————SET character_set_connection = utf8 ;
|————————SET character_set_database = utf8 ;
|————————SET character_set_server = utf8 ;
|————————SET character_set_client = utf8 ;
|————————SET character_set_results = utf8 ;
|————————SET collation_connection = utf8_general_ci ;
|————————SET collation_server = utf8_general_ci ;
|————————SET collation_database = utf8_general_ci ;

查看表的结构:describe/desc tableName;

+show:
|————————SHOW DATABASES︰列出 MySQL Server上的数据库。
|————————SHOW TABLES [FROM db_name]︰列出数据库中的表。
|————————SHOW TABLE STATUS [FROM db_name]︰列出数据库的表信息,比较详细。
|————————SHOW COLUMNS FROM tbl_name [FROM db_name]︰列出表的列信息,同 SHOW FIELDS FROM tbl_name [FROM db_name],DESCRIBE tbl_name [col_name]。
|————————SHOW FULL COLUMNS FROM tbl_name [FROM db_name]︰列出表的列信息,比较详细,同 SHOW FULL FIELDS FROM tbl_name [FROM db_name]。
|————————SHOW INDEX FROM tbl_name [FROM db_name]︰列出表的索引信息。
|————————SHOW STATUS︰列出 Server 的状态信息。
|————————SHOW VARIABLES︰列出 MySQL 系統参数值
|————————SHOW PROCESSLIST︰查看当前mysql查询进程
|————————SHOW GRANTS FOR user︰列出用户的授权命令

+Create
|————————CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
|————————[(create_definition,…)]
|————————[table_options] [select_statement]

|————————column_definition: #对列的属性的定义
|————————col_name type [NOT NULL | NULL] [DEFAULT default_value]
|————————[AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
|————————[COMMENT ‘string’]

|————————COMMENT:对于列的评注可以使用COMMENT选项来进行指定。评注通过SHOW CREATE TABLE和SHOW FULL COLUMNS语句显示。

|————————table_option:
|————————{ENGINE|TYPE} = engine_name //存储引擎选择,常见的有MyISAM、InnoDB,默认为InnoDB
|————————AUTO_INCREMENT = value //表的初始AUTO_INCREMENT值
|————————AVG_ROW_LENGTH = value //表中平均行长度的近似值。只需要对含尺寸可变的记录的大型表进行此项设置
|————————[DEFAULT] CHARACTER SET charset_name [COLLATE collation_name] //用于为表指定一个默认字符集
|————————CHECKSUM = {0 | 1}//如果您希望MySQL随时对所有行进行实时检验求和(也就是,表变更后,MySQL自动更新检验求和),则应把此项设置为1。这样做,表的更新速度会略微慢些,但是更容易寻找到受损的表。CHECKSUM TABLE语句用于报告检验求和(仅限于MyISAM)
|————————COMMENT = ‘string’//表的注释,最长60个字符。
|————————CONNECTION = ‘connect_string’
|————————MAX_ROWS = value//打算储存在表中的行数目的最大值。这不是一个硬性限值
|————————MIN_ROWS = value//打算存储在表中的行数目的最小值
|————————PACK_KEYS = {0 | 1 | DEFAULT}
|————————PASSWORD = ‘string’//使用密码对.frm文件加密。在标准MySQL版本中,本选项不起任何作用
|————————DELAY_KEY_WRITE = {0 | 1}
|————————ROW_FORMAT = {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
|————————UNION = (tbl_name[,tbl_name]…)//当您想要把一组相同的表当作一个表使用时,采用UNION。UNION仅适用于MERGE表
|————————INSERT_METHOD = { NO | FIRST | LAST }
|————————DATA DIRECTORY = ‘absolute path to directory’//指定MyISAM存储引擎放置表格数据文件的位置
|————————INDEX DIRECTORY = ‘absolute path to directory’//指定MyISAM存储引擎放置索引文件的位置
|————————实例:
|————————图书表(id book_id author_id book_name pages press)

|————————CREATE TABLE IF NOT EXISTS book(
|————————id int NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY COMMENT '主键',
|————————book_id int NOT NULL UNIQUE COMMENT '图书编号',
|————————author_id int NOT NULL UNIQUE COMMENT '作者编号',
|————————book_name varchar(100) NOT NULL UNIQUE COMMENT '图书名字',
|————————pages int NOT NULL UNIQUE COMMENT '图书页数',
|————————press varchar(50) NOT NULL UNIQUE COMMENT '出版社')       
|————————ENGINE=INNODB AUTO_INCREMENT=1 charset=UTF8 COMMENT='图书表';

+Select
|————————SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY]
|————————[DISTINCT | DISTINCT ON | ALL]//DISTINCT将从选择出来的结果集中删除所有的重复的行; ALL (缺省)将返回所有侯选行,包括重复的行;DISTINCT ON 删除匹配所有你声明的表达式的行, 只保留每个重复集的第一行
|————————select_expression,… //表的列/字段名或一个表达式
|————————[INTO {OUTFILE | DUMPFILE} ‘file_name’ export_options] //将结果输出到指定文件
|————————[FROM table_references] //一个表引用,子查询,或者 JOIN 子句
|————————[WHERE where_definition] //一个布尔表达式,给出真或假的结果
|————————[GROUP BY col_name,…] //允许用户把表分成匹配一个或多个数值的不同行的组
|————————[HAVING where_definition] //允许只选择那些满足声明条件的行组
|————————[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,…] // 导致返回的行按照声明的顺序排列, 如果没有给出 ORDER BY,输出的行的顺序将以系统认为开销最小的顺序产生
|————————[LIMIT [offset,] rows] //允许给用户返回一个查询生成的结果的子集,返回结果集中从offset开始的rows条记录

+Insert //三种表达方式

|————————INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
|————————[INTO] tbl_name [(col_name,…)]
|————————VALUES ({expr | DEFAULT},…),(…),…
|————————[ ON DUPLICATE KEY UPDATE col_name=expr, … ] //如果发生UNIQUE或PRIMARY KEY冲突,则在冲突行执行UPDATE col_name=expr

|————————INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
|————————[INTO] tbl_name
|————————SET col_name={expr | DEFAULT}, …
|————————[ ON DUPLICATE KEY UPDATE col_name=expr, … ]

|————————INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] //将select结果集插入到指定表中
|————————[INTO] tbl_name [(col_name,…)]
|————————SELECT …
|————————[ ON DUPLICATE KEY UPDATE col_name=expr, … ]
|————————实例:
|————————图书表(id book_id author_id book_name pages press)

|————————insert into book values(1,1,1,'mysql性能优化',1000,'this is about how to work better with mysql');
|————————insert into book values(1,1,1,'mysql性能优化',1000,'this is about how to work better with mysql') on duplicate key update press = 'mysql优化';

+Update //两种方式
|————————UPDATE [LOW_PRIORITY] [IGNORE] tbl_name//如果指定LOW_PRIORITY,UPDATE 的执行将被延迟,直到没有其它的客户端正在读取表;如果指定IGNORE,该更新语句将不会异常中止,即使在更新过程中出现重复键错误,导致冲突的记录行将不会被更新
|————————SET col_name1=expr1 [, col_name2=expr2 …] //指出要修改哪个列和他们应该给定的值
|————————[WHERE where_definition] //指定哪个记录行应该被更新
|————————[ORDER BY …] //如果 ORDER BY 子句被指定,记录行将被以指定的次序更新
|————————[LIMIT rows]

|————————UPDATE [LOW_PRIORITY] [IGNORE] tbl_name [, tbl_name …]
|————————SET col_name1=expr1 [, col_name2=expr2 …]
|————————[WHERE where_definition]

|————————实例:
|————————图书表(id book_id author_id book_name pages press)

|———————— update  book set book_name = 'mysql' where id = 1;

+Delete //三种方式,从 table_name 中删除 where_definition 中给定条件的记录行,并返回删除的记录数目
|————————DELETE [LOW_PRIORITY] [QUICK] FROM table_name
|————————[WHERE where_definition]
|————————[ORDER BY …]
|————————[LIMIT rows]

|————————DELETE [LOW_PRIORITY] [QUICK] table_name[.] [, table_name[.] …]
|————————FROM table-references
|————————[WHERE where_definition]

|————————DELETE [LOW_PRIORITY] [QUICK]
|————————FROM table_name[.] [, table_name[.] …]
|————————USING table-references
|————————[WHERE where_definition]

|————————实例:
|————————图书表(id book_id author_id book_name pages press)
|————————作者表(id author_id author_name content)

|————————delete from book using author where author.name = '王五' and author.author_id = book.author.id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值