mysql sql语句大全
mysql sql语句大全 mysql sql语句大全
MySQL 是一个关系型数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。
MySQL默认超级管理员是root,一般在安装MySQL的时候会提示设置root密码。
前期的MySQL不支持存储过程,在MySQL5.0之后,设置存储引擎ENGINE=INNODB才能支持存储过程。
DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 常见SQL语句
1、创建用户创建用户一般都是登录超级管理员root,进行创建之后分配权限。
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; username - 你将创建的用户名。host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%。password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。 2、授权
1
GRANT privileges ON databasename.tablename TO
'username'@'host';
privileges - 用户的操作权限,如SELECT , INSERT , UPDATE,DELETE 等.如果要授予所的权限则使用ALL。databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示, 如.(对所有数据库所有表相应权限),datebasename.(对指定数据库所有表相应权限)。
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO
'username'@'host' WITH GRANT OPTION; 3、设置与更改用户密码
SET
PASSWORD
FOR
'username'@'host'
=
PASSWORD('newpassword'); 如果是当前登录用户用:
SET PASSWORD = PASSWORD(\ 4、撤销用户权限
REVOKE privilege ON databasename.tablename FROM
'username'@'host';
注意: 假如你在给用户’username’@’%’授权的时候是这样的(或类似的):GRANT SELECT ON testDB.user TO ‘username’@’%’, 则在使用REVOKE SELECT ON . FROM ‘username’@’%’;命令并不
2
能撤销该用户对testDB数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON . TO ‘username’@’%’;则REVOKE SELECT ON testDB.user FROM ‘username’@’%’;命令也不能撤销该用户对testDB数据库中user表的Select 权限。
具体信息可以用命令SHOW GRANTS FOR ‘username’@’%’; 查看。
5、删除用户
DROP USER 'username'@'host';
6、创建数据库-databasename - 数据库名 CREATE DATABASE databasename; 7、删除数据库-databasename - 数据库名 DROP DATABASE databasename; 8、修改数据库名
alter database 旧名称 modify name = 新名称 9、备份sql server
创建 备份数据的deviceUSE master EXEC sp_addumpdevice 'disk', 'testBack', 'e:\\mysql\\test.dat'开始 备份BACKUP DATABASE databasename TO testBack语句1:打开系统数据库master,或者说在系统数据库下操作。
语句2:定义备份逻辑设备名testBack,类型disk,路径为e:\\mysql\\test.dat。
语句3:备份数据库databasename到设备testBack上。
3
10、创建新表
CREATE TABLE tablename(col1 type1 [not null] [primary key],col2 type2 [not null],..); 根据已有的表创建新表:
A:CREATE TABLE tab_new like tab_old (使用旧表创建新表) B:CREATE TABLE tab_new as select col1,col2… from tab_old definition only #用户表 CREATE TABLE IF NOT EXISTS t_user( u_id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '编号', u_phone BIGINT NOT NULL COMMENT '账号-手机号', u_passwd VARCHAR(100) NOT NULL COMMENT '密码,4-20字符,MD5加密', u_regtime BIGINT UNSIGNED NOT NULL COMMENT '注册时间,时间戳', u_check_uid BIGINT UNSIGNED COMMENT '用户类型审核人员ID', PRIMARY KEY(u_id) COMMENT '主键', UNIQUE KEY(u_phone) COMMENT '唯一键', FOREIGN KEY(u_check_uid) REFERENCES t_user(u_id) ON DELETE CASCADE, KEY index_regtime(u_regtime) COMMENT '注册时间-索引' )ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT '用户表';
11、删除新表 DROP TABLE tablename 12、增加一个列
ALTER TABLE tablename ADD COLUMN col TYPE
注意:列增加后将不能删除。DB2中列加上后数据类型也不能改
4
变,唯一能改变的是增加varchar类型的长度。 13、添加主键
ALTER TABLE tablename ADD PRIMARY KEY(col) 14、删除主键
ALTER TABLE tablename DROP PRIMARY KEY(col) 15、创建索引
CREATE [UNIQUE] INDEX idxname ON tablename(col….) 16、删除索引 DROP INDEX idxname 17、创建视图
CREATE VIEW viewname AS SELECT statement 18、删除视图 DROP VIEW viewname
19、几个简单的基本的SQL语句 查询:
SELECT * FROM tablename WHERE 范围 插入:
INSERT
INTO
tablename(field1,field2)
VALUES(value1,value2) 删除:
DELETE FROM tablename WHERE 范围 更新:
5