• SQL语句学习(一)


    这篇文章用来记录再学习SQL语句的过程。

    首先,我们从简单的创建表开始。创建表的语法是CREATE TABLE 表名(列1的名字  列1的属性,列2的名字  列2的属性...);

    如果希望将某一列作为主键,我们可以在该列的属性中添加PRIMARY KEY,并且我们可以用auto_increment属性将该列设为自增。注意,自增的值同样可以手动设置值。

    1 create table t_Customer(
    2 customer_id int(11) primary key not null  auto_increment,
    3 First_name char(50),
    4 Last_name char(50),
    5 Address char(50),
    6 City char(50),
    7 Country char(50),
    8 Birth_Date datetime);

    这里,我们创建了一张名为t_Customer的表,并将custmoer_id设为主键。

    除了上述方法设置主键之外,我们还可以在最后一列之后添加PRIMARY KEY(customer_id)来设置主键。

    来试一下将First_name和Last_name组合作为主键。

    首先我们需要删除表之前的主键,

    1 ALTER TABLE t_customer DROP PRIMARY KEY;

    这里我们可能会被告知自增只能定义在主键上,所以我们需要先删除主键上的自增属性:

    ALTER TABLE t_customer CHANGE customer_id customer_id INT(11) NOT NULL;

    虽然此时我们没有写上customer_id是主键,但实际上主键仍然是它,因此我们需要重复之前的步骤,删除主键,

    之后再添加主键。

    1 ALTER TABLE t_customer ADD PRIMARY KEY(First_name, Last_Name);

    我们将主键重新改为id,然后往表里插入数据:

    1 INSERT INTO t_customer(First_name, Last_name, Address, City, Country, Birth_Date) VALUES('Mei','Han','1st Street','Seattle','USA','1989-03-04');
    2 INSERT INTO t_customer(First_name, Last_name, Address, City, Country, Birth_Date) VALUES('Jacob','Liu','2nd Street','Seattle','USA','1991-11-02');
    3 INSERT INTO t_customer(First_name, Last_name, Address, City, Country, Birth_Date) VALUES('Edward','Andrew','4th Street','Seattle','USA','1978-10-24');
    4 INSERT INTO t_customer(First_name, Last_name, Address, City, Country, Birth_Date) VALUES('Ci','Wu','1st Street','Hangzhou','China','1992-10-27');

    来看看增加的数据,用SELECT查找出之前增加的记录。

    1 SELECT * FROM t_customer;

    *表示筛选出全部的列。我们也可以制定我们需要的列。比如,只选出姓名:

    1 SELECT First_name,Last_name FROM t_customer;

    如果我们希望不重复的筛选出表里的全部城市,那么我们可以使用DISTINCT关键字:

    1 SELECT DISTINCT City From t_customer;

    WHERE关键字可以帮我们过滤掉不符合条件的记录:

    1 SELECT * FROM t_customer WHERE City = 'Seattle';

    AND和OR可以帮我们结合多个判断条件:

    1 SELECT * FROM t_customer WHERE First_name ='Mei' AND Last_name = 'Han';

    筛选出First_name = 'Mei'且Last_name = 'Han'的记录。

    1 SELECT * FROM t_customer WHERE City = 'Seattle' OR City = 'Hangzhou';

    筛选出City='Seattle'或是Hangzhou的记录。

    结合AND和OR:

    1 SELECT * FROM t_customer WHERE (First_name = 'Mei' OR First_name = 'Jacob') AND City = 'Seattle';

    我们可以通过ORDER BY对查询的结果进行排序:

    1 FROM t_customer ORDER BY Last_name;

    默认排序方式是升序,如果想用降序的话,则要加上DESC:

    SELECT * FROM t_customer ORDER BY Last_name DESC;

    我们也可以根据多列的值来排序:

    1 SELECT * FROM t_customer ORDER BY City, First_name;

    值得注意的是,当我们按照以下写法:

    SELECT * FROM t_customer ORDER BY City, First_name DESC;

    实际上是以City的升序和First_name的降序进行组合排序。

    修改记录的语法为 UPDATE 表名 SET 列1的名 = 新值, 列2的名=新值 WHERE 条件:

    1 UPDATE  t_customer SET City='Boston', Address = '2nd Street' WHERE Last_name = 'Han';

    删除记录的语法为 DELETE FROM 表名 WHERE 条件:

    1 DELETE From t_customer WHERE Last_name = 'Wu';

    LIMIT关键字可以限制返回的对大记录数:

    1 SELECT * FROM t_customer LIMIT 1;

    这里我们就得到了表里的第一条记录。

    LIKE可以帮助我们匹配特定的模式:

    1 SELECT * FROM t_customer WHERE Address LIKE '2nd%';

    注意LIKE后面的条件需要用引号,这里我们筛选出的是地址是2nd开头的记录。

    NOT LIKE 可以选择出不符合条件的记录。

    LIKE可以搭配通配符使用,以下是各个通配符的含义:

    通配符                                描述

    %                                     替代一个或多个字符

    _                                       仅替代一个字符

    [charlist]                             字符列中的任何单一字符

    [^charlist]或[!charlist]          不在字符列中的任何单一字符

    IN关键字:IN允许我们在WHERE条件中规定多个值。

    1 SELECT * FROM t_customer WHERE City IN ('Boston','Seattle');

    筛选出City是Boston或是Seattle的记录。

    1 SELECT * FROM t_customer WHERE First_name BETWEEN 'Curry' AND 'Jordan';

    筛选名字介于Curry和Jordan的记录。

    值得注意的是,不同的数据库对边界的规定是有所差异的!我测试了mySQL是包含边界的。

  • 相关阅读:
    Linux概念与体系阅读笔记
    iOS缓存
    iOS开发笔记系列-基础3(多态、动态类型和动态绑定)
    在进入新版本 的时候,进行推送引导
    手机号验证
    通过UIView对象获取该对象所属的UIViewController(转)
    支付宝和微信支付的各种填坑
    IOS开发简单登录LoginViewController、注册RegisterViewController、UcenterViewController功能实现方法
    iOS 注册登录页面
    多媒体元素的使用
  • 原文地址:https://www.cnblogs.com/insaneXs/p/5217596.html
Copyright © 2020-2023  润新知