MySQL语法详解

对数据库进行操作

一、连接数据库
1、连接本地数据库
	mysql -u root -p;
2、连接远程数据库
	mysql -h ip -uroot -p;
3、退出数据库
	exit(回车)
二、创建数据库
1、创建数据库
	create database 数据库名 default charset=utf8;
2、给数据库添加用户权限
	grant 权限名(select) on 数据库名.* to '用户名'@localhost identified by '密码';
3、刷新权限
	flush privileges;
三、显示数据库
1、显示所有数据库
	show databases;
四、删除数据库
1、按名称删除数据库
	drop database 数据库名;
2、删除一个不确定是否存在的数据库
	drop database if exists 数据库名;
五、使用数据库
use 数据库名;
六、对当前选择的数据库进行操作
1、显示mysql的版本号
	select version();
2、显示当前时间
	select now();
3、显示年月日
	年:select year(current_date);
	日:select dayofmonth(current_date);
	月:select month(current_date);
4、打印字符串
	select "字符串内容";
5、拼接字符串
	select concat(字段名,"",字段名)
	as 自定义的拼接后的字段名
	from 数据库名
	where 条件;
6、当做计算器来使用
	select(4*4)+25;
七、备份数据库
1、导出整个数据库
	mysqldump -u 用户名 -p 数据库名>导出的文件名.sql
2、导出一个表
	mysqldump -u 用户名 -p 数据库名 表名>导出的文件名.sql
3、导出一个数据库结构
	mysqldump -u 用户名 -p -d –add-drop-table 数据库名>导出的文件名.sql

对数据表进行操作

一、创建数据表
1、创建一张数据表
	create table 表名(
		字段名 字符类型(长度) 约束条件,
        name varcher(255) primary key
	);
2、常用约束条件:是否为空、是否为主键、是否自动增加、默认值。
二、删除数据表
drop table 表名;
三、向数据表中插入数据
1、缺省字段名插入(需要插入全部字段且保持顺序一致)
	insert into 表名() values(属性值1,属性值2...);
2、自定义字段插入
	insert into 表名(字段名1,字段名2) values(属性值1,属性值2);
四、查询表中的数据
select 字段名 from 表名 条件;
五、删除表中的数据
delete from 表名 条件;
六、修改表中的数据
update 表名 set 字段='属性值' 条件;   如果没有条件,将更新该字段的所有属性值
七、修改表名
rename table 原表名 to 新表名;
八、复制一张表
一、表1和表2结构一致
	1、拷贝表1的全部数据
	insert into 表2 select * from 表1;
	2、拷贝表1的n条数据
	insert into 表2 select * from 表1 limit n;
	3、拷贝表1的指定字段
	insert into 表2(字段1,字段2) select 字段1,字段2 from 表1 条件;
二、创建一张表,同时拷贝表1中的数据和结构到新表中
	create table 新表名 select * from 表1;
三、创建一张表,只拷贝表1的结构到新表中,不拷贝数据
	create table 新表名 like 表1;

对字段进行操作

一、添加字段
1、添加一个字段
	alter table 表名 add 字段名 类型(长度) default '默认值';
2、添加多个字段
	alter table 表名 add 字段1 类型,add 字段2 类型;
3、指定新增字段的位置
	alter table 表名 add 字段名 字段类型 first;
	alter table 表名 add 字段名 字段类型 after 字段名;
二、删除字段
1、删除一个字段
	alter table 表名 drop 字段名;
2、删除多个字段
	alter table 表名 drop column 字段名,drop column 字段名;mysql;
如果表中只剩一个字段则无法使用drop来进行删除
三、修改字段名
alter table 数据库名 modify column '字段名' comment '字段名';
四、修改字段类型
1、修改字段的长度
	alter table 表名 modify 字段名 字段类型(长度);
2、修改字段名以及字段类型
	alter table 表名 change 旧字段名 新字段名 新字段类型;
五、修改字段的默认值
1、修改字段的默认值
	alter table 表名 alter 字段名 set default '默认值';
2、删除字段的默认值
	alter table 表名 alter 字段名 drop default;
六、对字段的索引进行操作
	alter table 表名 索引名(字段名);
1、给字段添加主键的索引
	alter table 表名 add primary key(字段名);
2、给字段添加唯一性约束的索引
	alter table 表名 add unique 索引名(字段名);
3、删除某个索引
	alter table 表名 drop index 索引名;
4、给字段添加一个外码的约束性条件
	alter table 表名 add foreign key(字段名) references 外表名(外表中的字段名);
5、删除表中的主码
	alter table 表名 drop primary key;

操作用户权限

一、添加用户权限
	grant 权限 on 数据库对象(表名) to 用户;
1、为数据库中的所有表添加一条用户权限
	grant 权限 on 数据库.* to username@'%';  %为所有访问ip
2、为数据库中的所有表添加多条用户权限
	grant 权限1,权限2 on 数据库.* to username@'%';
3、为数据库中的所有表添加所有权限
	grant all privileges on 数据库.* to username@'%';
4、为用户添加权限并设置该用户可为其他用户授权
	grant 权限 on 数据库.* to username@'%' with grant option;
二、查看用户权限
1、查看用户在所有登录情况下的权限
	show grants;
2、查看用户在某种登录条件下的权限
	show grants for '用户名'@'localhost';
3、刷新用户权限
	flush privileges;
三、移除用户权限
1、移除用户在某表中的所有权限
	revoke all privileges on table 表名 from 用户名@'ip';
2、移除用户在某数据库中的所有权限
	revoke all privileges on 数据库名.* from 用户名@'ip';
3、移除用户权限和级联授权的权限
	revoke all privileges on 数据库名.* from 用户名@'ip' cascade;
4、刷新用户权限
	flush privileges;

你可能感兴趣的:(笔记,心得,mysql,数据库,sql)