m001

来源:互联网 发布:exchange2013多域名 编辑:程序博客网 时间:2024/06/10 06:23

1. 命令登录到mysql Server:

mysql -h hostname -u username -ppassword databasename,其中-p后不能有空格,也可以只-p省略口令,当mysql启动时,会提示输入口令,并且此时不会显示到屏幕上

2. MYSQL不区分大小写,要断开连接,可以输入:

quit, exit, 或者按Ctrl+D

3. 如果刚刚安装MYSQL,还没有根口令,创建根口令:

% mysql -u root mysql

mysql> SET PASSWORD=PASSWORD('m001m001');

4. 创建数据库:

mysql> CREATE DATABASE firstdb;

5. 创建用户并赋予数据库firstdb的完全访问权限:

mysql> grant all on firstdb.* to himysql@localhost identifird by 'm001m001';

6. 使用创建的数据库:

% mysql -u himysql -pm001m001 firstdb

或者连接时不指定数据库:

% mysql -u himysql -pm001m001 himysql

mysql> use firstdb

7. 创建表:

mysql> CREATE TABLE sales_rep(

employee_number INT,

surname VARCHAR(40),

first_name VARCHAR(30),

commission TINYINTs

);

8. 显示数据库中现有的表:

mysql> show tables;

9. 查看表结构:

mysql> describe sales_rep;

10. 向表中添加新记录:

mysql> INSERT INTO sales_rep(employee_number,surname,first_name,commission) VALUES(1, 'Rive', 'Sol', 10);

注意:字符串字段的值要用单引号括起来

一次添加多条记录:

mysql> INSERT INTO sales_rep(employee_number,surname,first_name,commission) VALUES(1, 'Rive', 'Sol', 10), (2, 'Rive', 'Sol', 10), (3, 'Rive', 'Sol', 10);

11. 从文本文件插入大量数据:

mysql> LOAD DATA LOCAL INFILE "sales_rep.sql" INTO TABLE sales_rep;

注意:文本中每条数据占一行,每个字段由TAB键来分隔,每一行以换行符结束:

1\tRive\tSol\t10

2\tSertore\tMike\t10

12. 表中检索信息:

mysql> SELECT * FROM sales_rep WHERE commission>10 OR surname='Rive' AND first_name='Sol';

注意:ADN优先级比OR要高

13. 模式匹配:LIKE和%,其中%匹配0到多个字符

mysql> SELECT * FORM sales_rep WHERE surname LIKE '%e%';

14. 分类:

mysql> SELECT * FROM sales_rep ORDER BY commission DESC, surname ASC, first_name ASC;

注:当第一个要求条件相同时按照第二个要求条件排序,默认ASC升序可以不写

15. 限制结果的数量:

mysql> SELECT * FROM sales_rep ORDER BY commission DESC LIMIT 2, 3;

注:2为偏移量,3是返回的记录数,偏移量是从0开始的

16. MAX()返回最大值:

mysql> SELECT MAX(commission) FROM sales_rep;

注:括号前不要有空格,还有AVG(), MIN(), SUM()等函数

17. 去掉重复:

mysql> SELECT DISTINCT surname FROM sales_rep ORDER BY surname;

18. 计数:

mysql> SELECT COUNT(DISTINCT surname) FROM sales_rep;

19. 在查询中计算:

mysql> SELECT first_name,surname,commission+1 FROM sales_rep;

20. 删除记录:

mysql> DELETE FROM sales_rep WHERE employee_number = 5;

注:如果没有WHERE从句,将会删除表中所有记录

21. 更改记录:

mysql> UPDATE sales_rep SET commission = 12 WHERE employee_number= 1;

注:没有WHERE从句,将可能更改所有记录


小结:INSERT/SELECT/UPDATE/DELETE它们是SQL数据处理语言(DATA MANIPULATION LANGUAGE,DML)的一部分。以下是数据定义语言(DATA DEFINITION LANGE,DDL)


22. 删除表和数据库:

mysql> CREATE TABLE comm (id INT);

mysql> DROP TABLE comm;

mysql> CREATE DATABASE ss;

mysql> DROP DATABASE ss;

23. 改变表结构:

mysql> ALTER TABLE sales_rep ADD date_joined DATE;

mysql> ALTER TABLE sales_rep DROP date_joined;

注:DATE(YYYY-MM-DD)格式的日期,MYSQL中还有一个YEAR存储年的类型

mysql> ALTER TABLE sales_rep CHANGE year_born birthday DATE;将列名year_born改为birthday

mysql> ALTER TABLE sales_rep CHANGE year_born year_born DATE;只改变列定义而不改变列名等同于下面语句:

mysql> ALTER TABLE sales_rep MODIFY year_born DATE;

24. 改表名:

mysql> ALTER TABLE sales_rep RANAME hh;

mysql> ALTER TABLE hh RANAME TO sales_rep;

注:RANAME和RANAME TO效果一样

25. 日期函数:

mysql> UPDATE sales_rep SET date_joined = '2000-04-23', birthday = '1988-06-08' WHERE employee_number=1;

mysql> SELECT DATE_FORMAT(date_joined, '%m/%d/%Y) FROM sales_rep WHERE employee_number=1;

mysql> SELECT NOW(), CURENT_DATE();

26. 高级查询:

mysql> SELECT surname, first_name, MONTH(birthday) AS month, DAYOFMONTH(birthday) AS day FROM sales_rep ORDER BY month;

mysql> SELECT CONCAT(first_name, ' ', surname) AS name, MONTH(birthday) AS month, DAYOFMONTH(birthday) AS day FROM sales_rep ORDER BY month;

mysql> SELECT surname, first_name, (YEAR(CURRENT_DATE) - YEAR(birthday)) - (RIGHT(CURRENT_DATE,5)<RIGHT(birthday,5)) AS age FROM sales_rep;

mysql> SELECT sales_rep, SUM(value) FROM sales GROUP BY sales_rep ORDER BY sum desc;


0 0
原创粉丝点击