登录mysql: mysql -h 主机名 -u 用户名 -p密码
先看一下这几种语句的区别。
DML(data manipulation language):SELECT, UPDATE, INSERT, DELETE这几个都是对数据进行操作的语句。
DDL(data definition language):主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
DCL(Data
Control Language): 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL
查看数据库:SHOW DATABASES;
选择数据库:USE 数据库名;
创建数据库:CREATE DATABASE 数据库名;
删除数据库:DROP DATABASE 数据库名;
查看当前数据库编码:SHOW VARIABLES LIKE 'CHARACTER_SET_DATABASE';
查看表:SHOW TABLES;
创建表:CREATE 表名(字段1,字段2......);
查看表结构:DESC 表名;
删除表:DROP TABLE表名;
插入一条记录:INSERT INTO 表名(字段1,字段2.....) VALUES(值1,值2,.....);注意:这种方式可以选择特定的要插入的字段和要插入的值,并非从头插到尾
插入一条记录:INSERT INTO VALUES(值1,值2....); 注意:这种插入方式所有字段都必须插入一个值,即有多少字段就得插入多少值。另:如果值是字符或者字符串,要加双引号
SELECT:
查看整个表内容:SELECT * FROM 表名;
查看特定的字段内容:SELECT 字段1,字段2 FROM 表名;
查看特定字段内容且按某一字段排序:SELECT 字段1 FROM 表名 ORDER BY 字段2;
查看特定字段的内容且丢弃掉重复的内容:SELECT DISTINCT 字段名 FROM 表名;
查看某一条信息:SELECT * FROM 表名 WHERE 字段=字段值;(比如查找数据库hehe中id值为3的所有信息:SELECT * FROM hehe WHERE id=3;)
ALTER:
插入一个字段:ALTER TABLE 表名 ADD 字段名;
删除一个字段:ALTER TABLE 表名 DROP 字段名;
UPDATE:
更新数据库记录:UPDATE 表名 SET 字段1=值1 WHERE 字段2=值2;
更新数据库记录:UPDATE 表名 SET 字段1=值3,字段3=值1,字段4=值5 WHERE 字段2=值2;
DELETE:
删除一条记录:DELETE FROM 表名 WHERE 字段1=值1;(这里是条件表达式,例如删除uid>3的,可以写成 DELETE FROM hehe WHERE id>3)
删除所有记录:DELETE FROM 表名;
添加用户:CREATE USER 用户名 IDENTIFIED BY ‘密码’;
删除用户:DROP USER 用户名;
修改当前用户密码:SET PASSWORD=PASSWORD(‘密码’);
修改其他用户密码:SET PASSWORD FOR 用户名=PASSWORD(‘密码’);
授予用户权限:GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码';(%代 表可以登录的主机不做限制,local代表只能从本地登录,all privileges 代表所有权限,你也可以在这里制定特定的权限,比如select,update,delete,alter等等....)
撤销权限:REVOKE ALL PRIVILEGES FROM 用户名;(同上,all privileges可以替换为需要的特定权限)
查看当前用户权限:SHOW GRANTS FOR 用户名;
备份数据库:mysqldump -u 用户名 -p 数据库 > 备份数据库名;
恢复数据库:mysql -u 用户名 -p 需要恢复的数据库名 < 备份的数据库名;
DCL在此不做讨论