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

MySQL常用DDL

2015-07-03 17:42 295 查看
http://blog.csdn.net/collonn/article/details/5888698

转载请注明出处

一、SQL分类

DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)

DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)

DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)

----------------------------------------------------------------------------------------------------------------------------------------

二、数据库相关

1:show databases; 查看数据库

2:use databaseName; 打开数据库

3:create database databaseName default charset=utf8 创建数据库

drop database dbname

4:select database() 查看当前选中的数据库

5:select version() 查看当前数据库版本

6:show create database databaseName 查看建库语句

----------------------------------------------------------------------------------------------------------------------------------------

三、表相关

1:show tables; 查看数据所有表(先用use databaseName选中当前数据库)

2:desc tableName; 查看表结构

3:show create table tableName 查看建表语句

4:alter table tablename modify columnName column_definition [FIRST | AFTER columnName]

alter table tablename add columnName column_definition [FIRST | AFTER columnName]

alter table tablename change columnName newColumnName column_definition [FIRST | AFTER columnName]

alter table tablename drop columnName

alter table tablename rename [T0] new_tablename;

5:CRUD

insert into tableName (name, age) values ('aa',12),('bb',13)...

update tableName set name = 'cc', age = 16 where ...

delete from tableName where ......

truncate table tableName

6:SHOW TABLE STATUS FROM DB_NAME 查看某数据库中表的所有信息

7:CREATE(ALTER) TABLE table_name ENGINE = MyISAM(InnoDB) 更改表引擎

----------------------------------------------------------------------------------------------------------------------------------------

四:权限相关

1:mysqladmin -u用户名 -p旧密码 password 新密码

2:Host is not allowed to connect to this MySQL server

grant ALL on *.* to root@"%" identified by "";

----------------------------------------------------------------------------------------------------------------------------------------

五:索引相关

1:CREATE INDEX indexName ON mytable(username(length)[,password(length)]) 创建索引

ALTER mytable ADD INDEX [indexName] ON (username(length))

注:如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length

多列索引遵循最左前缀(Leftmost Prefixing)原则

2:DROP INDEX [indexName] ON mytable 删除索引

3:建立索引的时机

MySQL只对<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE(like 'to%')才会使用索引

----------------------------------------------------------------------------------------------------------------------------------------

六:启动与关闭MySQL

mysqld_safe& 启动mysql

mysqladmin -u root shutdown 关闭mysql

mysqlshow 显示mysql中的数据库列表

mysqladmin ping 显示mysql是否正在工作

mysqladmin version 显示mysql的版本

----------------------------------------------------------------------------------------------------------------------------------------

七:批量数据导入与导出

1:mysqldump -uroot -p manager > c:/manager.sql 注意:最后不要加任何东西

2:mysql -uroot -p dbname < c:/manager.sql 恢复时,先创建database,再用此命令。注意:最后不要加任何东西

3:csv格式文件的批量数据导入与导出

(1)select * from tableName into outfile '/tmp/tt.csv' fields terminated by ',' ENCLOSED BY '' LINES TERMINATED BY '/n'这是以csv格式导出数据,字段分隔是一个制表符

(2)load data infile '/tmp/tt.csv' into table tableName fields terminated by ','

这是csv格式数据的导入,注意,如果从excle中另存为csv格式,默认是以",分隔的。

4:insert

(1)select * into target_table from source_table;

要求目标表target_table不存在,因为在插入时会自动创建

(2)insert into target_table(column1,column2) select column1,5 from source_table;

要求目标表target_table存在,由于目标表已经存在,所以我们除了插入源表source_table的字段外,还可以插入常量

----------------------------------------------------------------------------------------------------------------------------------------

八:变量相关

1:show [sessin, global] variables like '%v_name%' 查询系统的变量(创建EVENT时要用)

v_name常用可选:sche, timeout, character

SET [GLOBAL] wait_timeout=120

----------------------------------------------------------------------------------------------------------------------------------------

九:存储过程,函数,触发器,事件

1:ALTER EVENT event_test ON COMPLETION PRESERVE ENABLE 开启事件(EVENT)

ALTER EVENT event_test ON COMPLETION PRESERVE DISABLE 停止事件(EVENT):

2:show procedure status

select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE'

3:MyISAM支持索引,全文搜索,不支持外键和事务,强调了快速读取操作

InnoDB支持索引,外键,事务,比MyISAM引擎慢很多,但5.1以上版本两者就相差不多了

----------------------------------------------------------------------------------------------------------------------------------------

十、其它:

SHOW ENGINES 查看所有引擎

show processlist; 查看数据库连接情况

show processlist/G; 查看数据库连接情况

show status 查看数据库状态

让MySQL在查询时不区分大小写

/etc/my.cnf 或 %MySQL_HOME%/my.ini 在 [mysqld]下添加:

lower_case_table_names=1 不区分大小写

版权声明:本文为博主原创文章,未经博主允许不得转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: