您的位置:首页 > 数据库 > MySQL

Mysql 介绍 及 命令语句

2012-09-09 21:02 351 查看
shell>> window命令

mysql>> mysql命令或语句

一、SQL简介:

Structured Query Language (结构化查询语言)

二、安装MySQL并进行配置

1、验证数据库是否安装成功

shell>>mysql -u root -p

2、查看当前已有的数据库

mysql>>SHOW DATABASES;

information_schema:schema的基本信息。不要删掉

mysql:数据库的基本数据.不要删掉

test:空数据库

三、SQL语句:DDL,DML,DQL,DCL

1、DDL:数据定义语言(Data Definition Lanaguage)

CREATE ALTER DROP:操作对象:数据库及表结构

-------------------------------------数据库操作

创建一个名称为mydb1的数据库。

mysql>>CREATE DATABASE mydb1;

创建一个使用utf8字符集的mydb2数据库。

mysql>>CREATE DATABASE mydb2 CHARACTER SET utf8;

查看数据库的创建细节

mysql>>SHOW CREATE DATABASE mydb1;

创建一个使用utf8字符集,并带校对规则的mydb3数据库。

mysql>>CREATE DATABASE mydb3 CHARACTER SET utf8 COLLATE utf8_general_ci;

删除前面创建的mydb1数据库

mysql>>DROP DATABASE mydb1;

查看服务器中的数据库,并把mydb2的字符集修改为gbk

mysql>>ALTER DATABASE mydb2 CHARACTER SET gbk;

选择当前数据库为test

mysql>>USE test;

备份test库中的数据,并恢复

只会备份数据库中的表结构和数据。不会备份数据库本身。

备份test中的表和数据

shell>>mysqldump -h localhost -u root -psorry test>d:/test.sql

恢复test数据库和其中的数据

先创建该数据库

mysql>>CREATE DATABASE test;

使用数据库

mysql>>USE test;

导入表结构和表数据

mysql>>SOURCE d:/test.sql;

恢复数据方式2:(数据库也必须存在)

shell>>mysql -u root -psorry test<d:/test.sql

-------------------------------------表操作

创建一个员工表

mysql>>CREATE TABLE employee(

id int,

name varchar(100),

gender varchar(10),

birthday date,

entry_date date,

job varchar(100),

salary float(10,2),

resume text

);

查看表结构

mysql>>DESC employee;

在上面员工表的基本上增加一个image列。

mysql>>ALTER TABLE employee ADD (image blob);

修改job列,使其长度为60。

mysql>>ALTER TABLE employee MODIFY job varchar(60);

删除gender列。

mysql>>ALTER TABLE employee DROP gender;

表名改为user。

mysql>>RENAME TABLE employee TO user;

修改表的字符集为utf-8

mysql>>ALTER TABLE user CHARACTER SET utf8;

列名name修改为username

mysql>>ALTER TABLE user CHANGE name username varchar(20);

2、DML:数据操作语言(Data Manipulate Lanaguage)

INSERT DELETE UPDATE:操作对象:表中的记录

插入的数据类型:日期和字符和字符串要使用单引号引起来

使用insert语句向表中插入三个员工的信息。

方式一:(建议使用)

mysql>>INSERT INTO user (id,username,birthday,entry_date,job,salary) VALUES (1,'yangxue','1990-09-07','2012-08-25','ceo',10000.00);

方式二:

mysql>>INSERT INTO user VALUES (2,'atai','1992-09-07','2012-08-25','cto',9000.00);

插入中文数据

mysql>>INSERT INTO user VALUES (3,'赵倩倩','1993-09-07','2012-08-25','cfo',9000.00);

当前表格编码详细信息:

mysql>>SHOW VARIABLES LIKE 'characte%';

character_set_client:是客户端使用的字符集。

character_set_connection:是连接数据库的字符集设置类型,如果程序没有指明连接数据库使用的字符集类型就按照服务器端默认的字符集设置。

character_set_database:是数据库服务器中某个库使用的字符集设定

character_set_results:是数据库给客户端返回时使用的字符集设定

character_set_server:是服务器安装时指定的默认字符集设定

character_set_system:是数据库系统使用的字符集设定

中文数据插不进去,原因字符集不正确。

告知MySql服务器,客户端使用的字符集

mysql>>SET character_set_client=gbk;

告知MySql服务器,客户端显示用的字符集

mysql>>SET character_set_results=gbk;

将所有员工薪水修改为5000元。

mysql>>UPDATE user SET salary=5000;

将姓名为yangxue的员工薪水修改为3000元

mysql>>UPDATE user SET salary=30000 WHERE username='yangxue';

将姓名为’atai’的员工薪水修改为4000元,job改为ccc

mysql>>UPDATE user SET salary=40000,job='ccc' WHERE username='atai';

将赵倩倩的薪水在原有基础上增加40000元

mysql>>UPDATE user SET salary=salary+40000 WHERE username='赵倩倩';

删除表中名称为’zs’的记录

mysql>>DELETE FROM user WHERE id=4;

删除表中所有记录:危险.一条一条地删除

mysql>>DELETE FROM user;

删除表中所有记录:摧毁整张表,然后重建表结构

mysql>>TRUNCATE TABLE user;

3、DQL:数据查询语言(Data Query Language)

SELECT:操作对象:表中的记录

查询表中所有学生的信息

mysql>>SELECT * FROM student;

建议使用

mysql>>SELECT id,name,chinese,english,math FROM student;

查询表中所有学生的姓名和对应的英语成绩

mysql>>SELECT name,english FROM student;

过滤表中english重复数据

mysql>>SELECT DISTINCT english FROM student;

在所有学生英语分数上加10分特长分

mysql>>SELECT name,english+10 FROM student;

统计每个学生的总分

mysql>>SELECT english+chinese+math FROM student;

使用别名表示学生分数

mysql>>SELECT english+chinese+math AS 总分 FROM student;

查询姓名为王五的学生成绩

mysql>>SELECT * FROM student WHERE name='王五';

查询英语成绩大于90分的同学

mysql>>SELECT name,english FROM student WHERE english>90;

查询总分大于200分的所有同学

mysql>>SELECT name,english+chinese+math FROM student WHERE (english+chinese+math)>250;

查询英语分数在 80-90之间的同学。

mysql>>SELECT * FROM student WHERE english BETWEEN 80 AND 90;

查询数学分数为89,90,91的同学。

mysql>>SELECT * FROM student WHERE math IN (89,90,91);

查询所有姓李的学生成绩。

mysql>>SELECT * FROM student WHERE name LIKE '李%';

查询数学分>80,语文分>80的同学。

mysql>>SELECT * FROM student WHERE math>80 AND chinese>80;

对数学成绩排序后输出。

mysql>>SELECT name,math FROM student ORDER BY math;

对总分排序后输出,然后再按从高到低的顺序输出

mysql>>SELECT name,english+chinese+math FROM student ORDER BY english+chinese+math DESC;

对姓李的学生成绩排序输出

mysql>>SELECT name,math FROM student WHERE name LIKE '李%' ORDER BY math;

统计一个班级共有多少学生?

mysql>>SELECT count(*) FROM student;

统计数学成绩大于90的学生有多少个?

mysql>>SELECT count(*) FROM student WHERE math>90;

统计总分大于250的人数有多少?

mysql>>SELECT count(*) FROM student WHERE (english+chinese+math)>250;

统计一个班级数学总成绩?

mysql>>SELECT sum(math) FROM student;

统计一个班级语文、英语、数学各科的总成绩

mysql>>SELECT sum(math),sum(chinese),sum(english) FROM student;

统计一个班级语文、英语、数学的成绩总和

mysql>>SELECT sum(english+chinese+math) FROM student;

统计一个班级语文成绩平均分

mysql>>SELECT sum(chinese)/count(*) FROM student;

求一个班级数学平均分?

mysql>>SELECT avg(math) FROM student;

求一个班级总分平均分

mysql>>SELECT avg(english+chinese+math) FROM student;

求班级总分最高分和最低分(数值范围在统计中特别有用)

mysql>>SELECT max(english+chinese+math) FROM student;

mysql>>SELECT min(english+chinese+math) FROM student;

对订单表中商品归类后,显示每一类商品的总价

mysql>>SELECT id,product,sum(price) FROM orders GROUP BY product;

查询购买了几类商品,并且每类总价大于100的商品

mysql>>SELECT id,product,sum(price) FROM orders GROUP BY product HAVING sum(price)>100;

4、DCL:数据控制语言(Data Control Language)

GRANT等; 操作对象:权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: