首页 > 代码库 > SQL基础
SQL基础
表相关:
创建表
CREATE TABLE user (id int UNSIGNED NOT NULL PRIMARYKEY,name VARCHAR(20) NOT NULL,age tinyint UNSIGNED);
//创建表
CREATE TABLE student (id int UNSIGNED NOT NULL,name VARCHAR(20)NOT NULL,age tinyint UNSIGNED,PRIMARY KEY(id,name));
//创建表,定义id和name为主键
HELP CREATE TABLE;
//查看创建表相关语句
SHOW TABLE STATUS LIKE ‘student‘\G
//查看表信息
删除表
DROP TABLE IF EXISTS student; //不可逆
修改表
ALTER TABLE user ADD gender ENUM(‘m‘,‘f‘);
//使用ADD给user表添加性别字段,且指定取值范围是m和f
ALTER TABLE user CHANGE id sid int UNSIGNED NOT NULL;
//使用CHANGE修改id字段名称为sid
ALTER TABLE user MODIFY age int;
//使用MODIFY修改age字段的属性
ALTER TABLE user ALTER gender SET DEFAULT ‘m‘;
//使用ALTER给gender字段设置默认值
ALTER TABLE user ALTER gender DROP DEFAULT; //取消默认值
ALTER TABLE user ADD INDEX(age); //把age字段作为索引
ALTER TABLE user DROP INDEX age; //取消age索引
ALTER TABLE user ADD UNIQUE KEY(name); //给name字段添加唯一约束
索引相关
CREATE INDEX age ON user (age);
//使用user表的age字段创建索引,索引名为age
DROP INDEX age ON user;
//删除user表中名为age的索引
增删改查
INSERT
INSERT user VALUES(1,‘user01‘,13,‘m‘),(2,‘usr02‘,15,‘f‘); //增加两条数据
INSERT user (sid,name) VALUES (3,‘user03‘),(4,‘user04‘); //只给出个别字段的值
SELECT
SELECT * FROM user WHERE sid<3; //查询id<3的记录
SELECT * FROM user WHERE gender is NOT NULL; //查找gender字段非空的记录
SELECT * FROM user WHERE sid>=2 AND sid<=4;
SELECT * FROM user WHERE sid BETWEEN 2 AND 4;
//查找sid在2到4之间的记录
SELECT * FROM user WHERE gender=‘m‘; //查找性别为男性的记录
SELECT * FROM user WHERE name LIKE ‘u%‘;
//模糊查找,查找所有u开头的用户,%表示匹配任意长度的任意字符
SELECT * FROM user WHERE name LIKE ‘user0_‘;
//模糊查找,_表示任意单个字符
SELECT * FROM user WHERE name RLIKE‘^u.*0.$‘;
//使用正则表达式进行匹配,效率低,不建议使用
SELECT sid as uid,name as uname FROMuser;
//只显示sid和name字段,且使用别名来显示字段名
DELETE
DELETE FROM user WHERE sid=3;
//删除sid=3的记录,如果不使用WHERE进行条件匹配,将会删除所有记录
UPDATE
UPDATE user SET gender=‘f‘ WHERE sid=4;
//修改sid=4的user的性别为女,如果不使用WHERE进行条件匹配,讲会对所有user进行更新操作
账号和权限相关
创建账号
CREATE USER ‘wpuser‘@‘%‘ IDENTIFIED BY ‘wppass‘;
//创建wpuser账号,允许任意ip地址登录,密码为wppass
CREATE USER ‘wpuser‘@‘localhost‘ IDENTIFIED BY ‘wppass‘;
//允许localhost登录
删除账号
DROP USER ‘wpuser‘@‘localhost‘; //删除wpuser从localhost登录的权限
授权
GRANT SELECT,INSERT ON testdb.* TO ‘wpuser‘@‘%‘;
//授权wpuser能够对testdb数据库的所有数据表进行查询和增加操作
GRANT ALL ON testdb.* TO ‘dbadmin‘@‘%‘ IDENTIFIED BY‘12345‘;
//创建dbadmin用户的同时,授予对testdb数据库的所有权限
查看权限
SHOW GRANTS FOR CURRENT_USER; //查看当前用户的权限
SHOW GRANTS FOR ‘wpuser‘@‘%‘; //查看某一用户的权限
回收权限
REVOKE DELETE ON testdb.* FROM ‘dbadmin‘@‘%‘;
//回收dbadmin的删除权限
注意:MariaDB服务进程启动时会读取mysql库中的所有授权表至内存中
(1) GRANT或REVOKE等执行权限操作会保存于表中,MariaDB的服务进程会自动重读授权表
(2) 对于不能够或不能及时重读授权表的命令,可手动让MariaDB的服务进程重读授权表,执行命令:FLUSHPRIVILEGES;
SQL基础