mysql摘记
上一篇 / 下一篇 2015-11-25 14:22:51 / 个人分类:Mysql
/*
* Time:2015-11-25
* Author:帮主
*/
最近一段时间用到过的 mysql 语句,根据自己的意向把语句都换成了形式,在实际操作的时候,要学会变通1、连接与断开服务器
连接:
命令:
> mysql -h host主机名 -u user_name -p --> 回车
> Enter password:
断开:
命令:
> \q 或者 quit
2、创建数据库
> create database db_name;
3、 连接/切换 数据库
> use db_name 或者 > connect db_name;
4、 创建表
> create table table_name (column1 style, .... );
或者利用已经存在的表,创建新表
> create table new_tb_name as select * from old_tb_name;
5、 删除表 drop :
> drop table table_name;
条件删除
6、增加数据 insert :
> insert table_name (column1,column2...) values (values1,values2...);
或者
> insert table_name values (values1,values2...);
7、删除数据 delete :
> delete from table_name where ..
8、修改数据 update...set/alter:
修改表信息
修改表名称
> rename table tb_oldname to tb_newname;
或者
> alter table table_oldname rename to tb_newname;
修改表列名
> alter table table_name rename column old_col_name to new_col_name
修改表列的数据类型
> alter table table_name modify column_name new_datatype;
插入表列
> alter table table_name add column_name datatype;
删除列
> alter table table_name drop column column_name;
修改表中数据
> update table_name set column = new_value,...where ...
例子1,单表的MySQL UPDATE语句:
> UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count];
例子2,多表的UPDATE语句:
> UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition];
9、 查看数据
查询所有数据
> select * from table_name;
条件查询
> sele * from table_name where 条件
查询某一字段
10、备份数据库 mysqldump
10.1、 导出整个数据库
> mysqldump -u user_name -p db_name > outfile_name.sql -- outfit_name 导出的文件名,可以加上位置
10.2、导出一个表
> mysqldump -u user_name -p db_name table_name > outfile_name.sql;
10.3、导出一个数据库结构
> mysqldump -u user_name -p -d -add-drop-table db_name > outfile_name.sql; -- -d 没有数据 -add-drop-table 在 每个create 语句前增加一个drop table
11、查询表中有多少个字段
> select count(*) from information_schema.COLUMNS where TABLE_SCHEMA='DB_name' and TABLE_NAME = 'table_name';
查询数据库中有多少个表
> select count(*) (别名) from information_schema.tables where table_schema="db_name" group by table_schema;
12、 在众多表中查询 表名 或者 字段名
> select TABLE_NAME,column_name from information_schema.columns where column_name like 'name';
或者
> SELECT column_name from information_schema.columns WHERE column_name LIKE ’%searchTerm%’ AND table_schema = ‘yourDB’
> SELECT column_name from information_schema.columns WHERE column_name LIKE ’%searchTerm%’ AND table_schema = ‘yourDB’ AND table_name = ‘yourDBTable’
13、 增加新用户 并 分配权限 grant ..on
> grant select/insert/update/../delete on db_name.* to user_name@host identified by 'password'; // 多个操作权限之间用逗号隔开
// 给用户分配 所有权限
grant all on privileges on db_name.table_name to user_name@host identified by 'password';
增减用户
> create user 'username'@'host主机名' identified by 'password';
设置用户可以授权给其他用户
> grant privileges on db_name.table_name to 'user_name'@'host主机名' with grant option;
撤销用户权限
> revoke privileges on db_name.table_name from 'user_name'@'host主机名'
修改用户密码: 以 root 为例
> set password for 'root'@'IP地址如localhost' = password('密码'); 或者 UPDATE user SET password=PASSWORD("密码") WHERE user='root';
删除用户
> drop user 'user_name'@'host主机名';
14、 表中的某个字段 赋值 给另一个字段
update table_name join(视图表) as 别名AA on aa.xx与 table_name.xx 关系条件 where ...
15、 索引操作
创建索引
> create [UNIQUE/FULLTEXT/SPATIAL] index index_name [using index_type] on tabel_name(index_col_name1,...);
例如: 创建一个索引,索引使用列名字前 10个字符
> create index index_name on table_name (name(10));
或者使用 alter 创建索引
①、alter table table_name add index index_name (column_list) ;
②、alter table table_name add unique (column_list);
③、alter table table_name add primary key (column_list) ;
查询索引
show index from table_name;
删除索引
alter table table_name drop index index_name ;
整理不易,转载麻烦标明出处
相关阅读:
- mySql查询总结 (zhuhuan2157914, 2015-9-29)
- MySQL的数据库引擎的类型 (zaza9084, 2015-9-29)
- Mysql优化sql语句的思路浅谈 (zaza9084, 2015-10-08)
- linux下安装yum+apache+mysql+php备忘 (duyunxia, 2015-10-09)
- 调整mysql的连接数 (Fishccc, 2015-10-13)
- mysql授权给指定机器访问 (zhuhuan2157914, 2015-10-30)
- MySQL主从复制的原理和配置 (zaza9084, 2015-11-17)