MYSQL整理1(常用)

来源:互联网 发布:淘宝怎么申请退保证金 编辑:程序博客网 时间:2024/05/23 20:27

常用的mysql语句整理:

1)查询语句

SELECT     column_1, column_2, ...FROM    table_1[INNER | LEFT |RIGHT] JOIN table_2 ON conditionsWHERE    conditionsGROUP BY column_1HAVING group_conditionsORDER BY column_1LIMIT offset, length;
  • SELECT之后是逗号分隔列或星号(*)的列表,表示要返回所有列。
  • FROM指定要查询数据的表或视图。
  • JOIN根据某些连接条件从其他表中获取数据。
  • WHERE过滤结果集中的行。
  • GROUP BY将一组行组合成小分组,并对每个小分组应用聚合函数。
  • HAVING过滤器基于GROUP BY子句定义的小分组。
  • ORDER BY指定用于排序的列的列表。
  • LIMIT限制返回行的数量。
--- 示例 mysql> SELECT lastname, firstname, jobtitle FROM employees;+-----------+-----------+----------------------+| lastname  | firstname | jobtitle             |+-----------+-----------+----------------------+| Murphy    | Diane     | President            || Patterson | Mary      | VP Sales             || Firrelli  | Jeff      | VP Marketing         || Patterson | William   | Sales Manager (APAC) || Bondur    | Gerard    | Sale Manager (EMEA)  || Bow       | Anthony   | Sales Manager (NA)   || Jennings  | Leslie    | Sales Rep            || Thompson  | Leslie    | Sales Rep            || Firrelli  | Julie     | Sales Rep            || Patterson | Steve     | Sales Rep            || Tseng     | Foon Yue  | Sales Rep            || Vanauf    | George    | Sales Rep            || Bondur    | Loui      | Sales Rep            || Hernandez | Gerard    | Sales Rep            || Castillo  | Pamela    | Sales Rep            || Bott      | Larry     | Sales Rep            || Jones     | Barry     | Sales Rep            || Fixter    | Andy      | Sales Rep            || Marsh     | Peter     | Sales Rep            || King      | Tom       | Sales Rep            || Nishi     | Mami      | Sales Rep            || Kato      | Yoshimi   | Sales Rep            || Gerard    | Martin    | Sales Rep            |+-----------+-----------+----------------------+23 rows in set

2)插入语句

INSERT INTO table(column1,column2...)VALUES (value1,value2,...);

首先,在INSERT INTO子句之后,在括号内指定表名和逗号分隔列的列表。
然后,将括号内的相应列的逗号分隔值放在VALUES关键字之后。

USE testdb;  --- 选择数据库 ------ 创建表 --CREATE TABLE IF NOT EXISTS tasks (     task_id INT(11) AUTO_INCREMENT,    subject VARCHAR(45) DEFAULT NULL,    start_date DATE DEFAULT NULL,    end_date DATE DEFAULT NULL,    description VARCHAR(200) DEFAULT NULL,    PRIMARY KEY (task_id))ENGINE=InnoDB DEFAULT CHARSET=utf8;--- 插入数据 ---INSERT INTO tasks(subject,start_date,end_date,description)VALUES('Learn MySQL INSERT','2017-07-21','2017-07-22','Start learning..');

3 )修改update语句

UPDATE [LOW_PRIORITY] [IGNORE] table_name SET     column_name1 = expr1,    column_name2 = expr2,    ...WHERE    condition;
  • 首先,在UPDATE关键字后面指定要更新数据的表名。
  • 其次,SET子句指定要修改的列和新值。要更新多个列,请使用以逗号分隔的列表。以字面值,表达式或子查询的形式在每列的赋值中来提供要设置的值。
  • 第三,使用WHERE子句中的条件指定要更新的行。WHERE子句是可选的。 如果省略WHERE子句,则UPDATE语句将更新表中的所有行。
--- 修改Murphy的jobtitle ----UPDATE employees SET     jobtitle = 'Presidents'WHERE    lastname = 'Murphy';

4 )删除表数据

DELETE FROM table_nameWHERE condition;

首先,指定删除数据的表(table_name)。
其次,使用条件来指定要在WHERE子句中删除的行记录。如果行匹配条件,这些行记录将被删除。

--- 删除firstname为Leslie的员工DELETE FROM employees WHERE    firstname = 'Leslie';
--- 删除employees表中的所有行DELETE FROM employees;

在执行上面查询语句后,employees表中的所有行都被删除。

5 ) 创建与删除数据库

--- 创建CREATE DATABASE [IF NOT EXISTS] database_name;
  • CREATE DATABASE语句的后面是要创建的数据库名称。
  • IF NOT EXISTS子句可防止创建数据库服务器中已存在的新数据库的错误。
--- 查询数据库 ----mysql> SHOW DATABASES;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || testdb             || yiibaidb           |+--------------------+5 rows in set

在使用指定数据库之前,必须通过使用USE语句告诉MySQL要使用哪个数据库。

--- 使用数据库 ---USE database_name;
--- 删除数据库 ---DROP DATABASE [IF EXISTS] database_name;
  • 与CREATE DATABASE语句类似,IF EXISTS是该语句的可选部分,以防止您删除数据库服务器中不存在的数据库。

    6 )创建与删除数据表
--- 创建表--- CREATE TABLE [IF NOT EXISTS] table_name(        column_list) engine=table_type;
  • 首先,指定要在CREATE TABLE子句之后创建的表的名称。表名在数据库中必须是唯一的。 IF NOT EXISTS是语句的可选部分,允许您检查正在创建的表是否已存在于数据库中。 如果是这种情况,MySQL将忽略整个语句,不会创建任何新的表。 强烈建议在每个CREATE TABLE语句中使用IF NOT EXISTS来防止创建已存在的新表而产生错误。

  • 其次,在column_list部分指定表的列表。字段的列用逗号(,)分隔。

  • 第三,需要为engine子句中的表指定存储引擎。可以使用任何存储引擎,如:InnoDB,MyISAM,HEAP,EXAMPLE,CSV,ARCHIVE,MERGE, FEDERATED或NDBCLUSTER。如果不明确声明存储引擎,MySQL将默认使用InnoDB。

--- 设置主键 ---PRIMARY KEY (col1,col2,...);
---- 示例:创建表tasks----CREATE TABLE IF NOT EXISTS tasks (  task_id INT(11) NOT NULL AUTO_INCREMENT,  subject VARCHAR(45) DEFAULT NULL,  start_date DATE DEFAULT NULL,  end_date DATE DEFAULT NULL,  description VARCHAR(200) DEFAULT NULL,  PRIMARY KEY (task_id)) ENGINE=InnoDB;
DROP TABLE  tbl_name;    --- 删除表,或---DROP TABLE IF EXISTS tbl_name;

如果要清空表中所有的记录,可以用下面两种方法:

delete from table1;truncate table table1;

如果要删除表中部分记录,只能用delete语句

delete from table1 where ....

2017年11月21日

原创粉丝点击