MySQL 入坑

2018-06-18 00:32:09来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

注:入坑内容来源于易百教程,这只是自己学习路上的经验总结...(附上易百教程网址:http://www.yiibai.com/mysql/) 持续跟新中...

MySQL导入示例数据库(http://www.yiibai.com/mysql/how-to-load-sample-database-into-mysql-database-server.html

基本语句:

SELECT语句(从表或试图获取数据)

  查询employees表里的所有信息

 SELECT * FROM employees;

  只查看员工的名字,姓氏和职位,请使用以下查询:

 SELECT lastname, firstname, jobtitle FROM employees;

where语句(根据指定的过滤表达式或条件来指定要选择的行)

  假设只想从employees表中获取销售代表员工,可使用以下查询

SELECT 
    lastname, firstname, jobtitle
FROM
    employees
WHERE
    jobtitle = 'Sales Rep';

 

数据库的操作:

  创建数据库:

 

CREATE DATABASE [IF NOT EXISTS] database_name;

 

    显示数据库:

SHOW DATABASES

  选择要使用的数据库:

USE DATABASE;

  删除数据库:

 

DROP DATABASE [IF EXISTS] database_name;

 

 

 

数据库_表_的操作:       

  创建表:

 

CREATE TABLE [IF NOT EXISTS] table_name(
        column_list
) engine=table_type;

 

注:要在CREATE TABLE语句中为表定义列,请使用以下语法:

column_name data_type[size] [NOT NULL|NULL] [DEFAULT value] [AUTO_INCREMENT]
  • column_name指定列的名称。每列具有特定数据类型和大小,例如:VARCHAR(255)
  • NOT NULLNULL表示该列是否接受NULL值。
  • DEFAULT值用于指定列的默认值。
  • AUTO_INCREMENT指示每当将新行插入到表中时,列的值会自动增加。每个表都有一个且只有一个AUTO_INCREMENT列。

如果要将表的特定列设置为主键,则使用以下语法:

 

PRIMARY KEY (col1,col2,...)

 

eg:

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;
View Code

 

  修改表(包括删除):

首先创建一个名为tasks的新表:

 

DROP TABLE IF EXISTS tasks;

CREATE TABLE tasks (
    task_id INT NOT NULL,
    subject VARCHAR(45) NULL,
    start_date DATE NULL,
    end_date DATE NULL,
    description VARCHAR(200) NULL,
    PRIMARY KEY (task_id),
    UNIQUE INDEX task_id_unique (task_id ASC)
);
View Code

 

使用MySQL ALTER TABLE语句来设置列的自动递增属性:

ALTER TABLE tasks
CHANGE COLUMN task_id task_id INT(11) NOT NULL AUTO_INCREMENT;

验证:

INSERT INTO tasks(subject,
                  start_date,
                  end_date,
   description)
VALUES('Learn MySQL ALTER TABLE',
       Now(),
       Now(),
      'Practicing MySQL ALTER TABLE statement');

INSERT INTO tasks(subject,
                  start_date,
                  end_date,
           description)
VALUES('Learn MySQL CREATE TABLE',
       Now(),
       Now(),
      'Practicing MySQL CREATE TABLE statement');

SELECT 
    task_id, description
FROM
    tasks;
View Code

使用MySQL ALTER TABLE语句将新的列添加到表中:

ALTER TABLE tasks 
ADD COLUMN complete DECIMAL(2,1) NULL
AFTER description;

使用MySQL ALTER TABLE从表中删除列:

ALTER TABLE tasks
DROP COLUMN description;

重命名表:

ALTER TABLE tasks
RENAME TO work_items;

 

 

   

数据的增删改查:

  首先创建一个表:  

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(插入数据)

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

  多行:

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

  如果为表中的所有列指定相应列的值,则可以忽略INSERT语句中的列列表,如下所示:

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

update语句(更新数据)

UPDATE table_name 
SET 
    column_name1 = expr1,
    column_name2 = expr2,
    ...
WHERE
    condition;

eg:

UPDATE employees 
SET 
    email = 'mary.new@yiibai.com'
WHERE
    employeeNumber = 1056;

多行:

UPDATE employees 
SET 
    lastname = 'Hill',
    email = 'mary.hill@yiibai.com'
WHERE
    employeeNumber = 1056;

delete语句(删除数据)

DELETE FROM table_name
WHERE condition;

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:InnoDB锁机制

下一篇:mysql大小写敏感问题