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

MySQL常用DDL

2016-08-17 23:29 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 不区分大小写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: