总结:
1、mySql的关键字严格要求大写,但在window系统下不做要求;
2、在对表进行操作的时候,一定先选择数据库;
格式:USE 数据库名;
3、命名时要注意不要使用关键字,如果想用关键字作为表名等,使用反引号(和~在一个key上)引起来。
【新增一个用户】
格式:
grant select,insert,update,delete on 数据库.表名 to 用户名@登录主机 identified by "密码";
grant all privileges on *.* to 用户名@登录主机 identified by "密码";
注:
1、表名一般用“*”代替,表示对该数据库中的所有表有权限;
2、对数据库的授权方式自定义,即“select,insert,update,delete”,或“all privileges”表示全部权限;
3、如果要给该用户赋予全部数据库的权限,那就用“*.*”代替;
4、登录主机为 localhost:代表本地主机,即MYSQL数据库所在的那台主机;
“%”:代表网络内任意一台电脑;
5、设置用户名不需要加引号,而设置密码需要;
【修改密码】
格式:
mysqladmin -u用户名 -p旧密码 password 新密码
【显示相关】
1、[显示当前用户下可操作的数据库]
格式:SHOW DATABASES;
2、[显示当前数据库中的所有表]
格式:SHOW TABLES;
3、[显示当前数据库下指定表的建表信息]
格式:SHOW CREATE TABLE 表名;
4、[显示当前数据库下表中的结构]
格式:DESC 表名;
或:DESCRIBE 表名;
【对数据库操作】
1、[创建数据库]
格式:CREATE DATABASE 库名;
2、[删除数据库]
格式:DROP DATABASE 库名;
3、[修改数据库字符集]
格式:ALTER DATABASE 数据库名 CHARACTER SET 字符集名;
注:UTF-8在mysql中为utf8。
【对表的操作】
1、[创建表]
格式:CREATE TABLE 表名 (
字段名 VARCHAR(20) NOT NULL ATUO_INCREMENT PRIMARY KEY, #设定该字段不为空,自动增加,为主键
字段名 CHAR(1),
unique(字段名)#设定唯一
);
2、[判断表是否存在再创建表]
格式:create table if not exists students(……);
3、[删除表]
格式:DROP TABLE 表名;
4、[将表中的记录清空]
格式:DELETE FROM 表名;
5、[给表中全部字段或指定字段插入记录]
格式:INSERT INTO 表名 VALUES("","");
或:INSERT INTO 表名 (id) VALUES("");
注:要是给全部字段插入记录,括号中的数据要与表中字段的顺序一致;
6、[更新表中的数据]
格式:UPDATE 表名 SET 字段名=修改值 WHERE 字段名=字段值;
7、[更改表名]
格式:ALTER TABLE 原表名 RENAME 新表名;
8、[复制表]
格式:CREATE TABLE 新表名 SELECT * FROM 旧表名;
【查询操作】
1、[显示表中的所有数据]
格式:SELECT * FROM 表名;
2、[过滤重复数据]
格式:SELECT DISTINCT 字段名 FROM student;
3、[使用别名显示数据]
格式:SELECT 表别名.字段名 AS 字段别名 FROM 表名 表别名;
注:1、表别名是用来调用表中的字段的,字段别名是用来显示的;
2、AS可以省略。
4、[筛选查询]
格式: 查询英语成绩大于90分的同学
SELECT * FROM student WHERE english>90;
查询总分大于200分的所有同学
SELECT * FROM student WHERE (chinese+english+math)>200;
查询英语分数在 80-90之间的同学。
SELECT * FROM student WHERE english BETWEEN 80 AND 90;
SELECT * FROM student WHERE english>=80 AND english<=90;
查询数学分数为89,90,91的同学。
SELECT * FROM student WHERE math IN (89,90,91);
查询所有姓李的学生成绩。
SELECT * FROM student WHERE name LIKE '李%';
查询数学分>80,语文分>80的同学。
SELECT * FROM student WHERE chinese>=80 AND math>=80;
对数学成绩排序后输出。
SELECT * FROM student ORDER BY math;
对总分排序后输出,然后再按从高到低的顺序输出
SELECT name, chinese+english+math AS 总分 FROM student ORDER BY chinese+english+math DESC;
SELECT name, chinese+english+math AS 总分 FROM student ORDER BY 总分 DESC;
对姓李的学生语文成绩排序输出
SELECT * FROM student WHERE name LIKE '李%' ORDER BY chinese;
【数据库备份与恢复】
1、[备份数据库]
格式:shell>mysqldump -h localhost -u root -p day14>day14.sql
注:MySQL导出的是一个文本文件
2、[恢复数据库]
方式一:进入MySQL
格式: USE day14;
SOURCE d:/day14.sql
方式二:不进入MySQL
格式:mysql -u root -p day14<d:/day14.sql
注:必须先创建数据库名