• mysql常用命令


      SQL对大小写不敏感

           登录mysql数据库:打开命令行窗口,进入mysql/bin目录,输入:mysql -u root -p(如果是远程数据库,假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123,输入:mysql -h 110.110.110.110 -u root -p abcd123)

      修改数据库密码:mysql/bin>mysql admin -u用户名 -p旧密码 password 新密码

      显示当前数据库服务器中的数据库列表:mysql> SHOW DATABASES;

      切换数据库:mysql> use database;

      查看数据库下表名称:mysql>show tables;

      查看表中的字段名称:mysql>show columns from 表名;

      退出数据库:mysql>exit;


       创建数据库: CREATE DATABASE 数据库名;

      创建数据库表:mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

      删除数据库:mysql> DROP DATABASE 库名;

      删除数据表:mysql> DROP TABLE 表名;

          修改表名, TO 或AS都可以,也以省略掉: ALTER TABLE 表名 RENAME [TO|AS] 新表名

      将表中记录清空:mysql> DELETE FROM 表名;(删除表中某行数据:DELETE FROM 表名称 WHERE 列名称 = 值)

      往表中插入记录:mysql> INSERT INTO 表名 VALUES (值1, 值2,....);(我们也可以指定所要插入数据的列:INSERT INTO 表名 (列1, 列2,...) VALUES (值1, 值2,....)

      更新表中数据:mysql-> UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';

      增加一列:alter table 表名 add 字段名 varchar(10) not Null;

      删除一列:alter table 表名 drop 字段名;

      修改某字段名:alter table 表名 change 原字段名 新字段名 字段类型;

      修改某字段类型:alter table 表名 modify 字段名 字段类型;


       Mysql基础语法

      1、select语句

      SELECT 列名称 FROM 表名称(select * from 表名)

      2、DISTINCT语句

      SELECT DISTINCT列名称 FROM 表名称(关键词 DISTINCT 用于返回唯一不同的值。)

      3、WHERE语句

      SELECT列名称 FROM 表名称 WHERE 列名 运算符 值(常用运算符:>、<、=、<>、>=、<=、BETWEEN、LIKE,SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。)

      4、AND /OR语句  

      AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

      如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

      5、ORDER BY语句  

      ORDER BY 语句用于根据指定的列对结果集进行排序。

      ORDER BY 语句默认按照升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。


      Mysql高级语法

      1、LIMIT语句

      SELECT * FROM 表名 LIMIT NUMBER;(选取前几条数据)

       2、LIKE语句 

       SELECT column_name(s)  FROM  table_name  WHERE column_name LIKE pattern;(用于在 WHERE 子句中搜索列中的指定模式。)

       3、通配符 

         在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。

         在 SQL 中,可使用以下通配符:

    通配符 描述
    % 替代一个活多个字符
    _ 仅替代一个字符
    [charlist] 字符列中的任何单一字符
    [^charlist]或[!charlist] 不在字符列中的任何单一字符

       4、IN操作符 

         IN 操作符允许我们在 WHERE 子句中规定多个值:

         SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)

       5、BETWEEN操作符 

         操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

         SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;

       6、Alias:为类名和表名指定别名 

       为表名指定别名:SELECT column_name(s) FROM table_name AS alias_name

       为列名指定别名:SELECT column_name(s)  AS alias_name FROM table_name 

       7、join 

       inner join ...on:在表中存在至少一个匹配时,INNER JOIN 关键字返回行。INNER JOIN 与 JOIN 是相同的。

    SELECT column_name(s)
    FROM table_name1
    INNER JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name

       left join ...on:即使右表中没有匹配,也从左表返回所有的行;

    SELECT column_name(s)
    FROM table_name1
    LEFT JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name

       right join ...on:即使左表中没有匹配,也从右表返回所有的行;

    SELECT column_name(s)
    FROM table_name1
    RIGHT JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name

       full join ...on:只要其中一个表中存在匹配,就返回行;(mysql不支持,可以用left join+ union+right join)

       7、Union操作符 

       用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

    SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2
    

      


        1、select into :可用于创建表的备份复件

       SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。

            使用 SELECT INTO FROM 备份mysql数据表的时候,运行相关 sql 语句的时候却一直返回 [Err] 1327 - Undeclared variable: …… 这种错误,原来 mysql 数据库是不支持 SELECT INTO FROM 这种语句的,但是经过研究是可以通过另外一种变通的方法解决这个问题的。进过搜索相关资料以及实验结果证实,可以使用Create table Table2 (Select * from Table1);这种语句代替SELECT vale1, value2, value3 into Table2 from Table1;

       2、constraints :约束   

       约束用于限制加入表的数据的类型。

       可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。

       我们将主要探讨以下几种约束:

       (1)NOT NULL:

       约束强制列不接受 NULL 值,如果不向字段添加值,就无法插入新记录或者更新记录

    • CREATE TABLE Persons
      (
      Id_P int NOT NULL,
      LastName varchar(255) NOT NULL,
      FirstName varchar(255),
      Address varchar(255),
      City varchar(255)
      )
      

      (2)UNIQUE:

      UNIQUE 约束唯一标识数据库表中的每条记录。UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

      请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

    • 创建表时添加约束
      CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255)
      unique (Id_p) )
      当表已经被创建时,添加约束:
      alter table persons
      add unique(Id_p)

       (3)PRIMARY KEY

         PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。

    • 创建表时添加约束
      CREATE TABLE Persons
      (
      Id_P int NOT NULL,
      LastName varchar(255) NOT NULL,
      FirstName varchar(255),
      Address varchar(255),
      City varchar(255),
      PRIMARY KEY (Id_P)
      )
      当表已被创建时,添加约束:
      alter table persons
      add PRIMARY KEY(Id_p)

      (4)FOREIGN KEY

         一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

    • 创建表时添加约束
      CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) )
      当表已被创建时添加约束
      alter table orders
      add foreign key (id_p)
      reference persons(id_p) 

      (5)CHECK

        CHECK 约束用于限制列中的值的范围。 

        如果对单个列定义 CHECK 约束,那么该列只允许特定的值。 

        如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。 

    创建表时添加约束
    CREATE TABLE Persons
    (
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    CHECK (Id_P>0)
    )
    添加约束时,表已被创建
    ALTER TABLE Persons
    ADD CHECK (Id_P>0)
    

           (6)DEFAULT:用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。 

        • 创建表时添加约束
          CREATE TABLE Persons
          (
          Id_P int NOT NULL,
          LastName varchar(255) NOT NULL,
          FirstName varchar(255),
          Address varchar(255),
          City varchar(255) DEFAULT 'Sandnes'
          )
          添加约束时表已存在
          ALTER TABLE Persons
          ALTER City SET DEFAULT 'SANDNES'
          

          3、create index:创建索引

        • 您可以在表中创建索引,以便更加快速高效地查询数据。

    用户无法看到索引,它们只能被用来加速搜索/查询。

              注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。

    CREATE INDEX index_name
    ON table_name (column_name)
    注释:"column_name" 规定需要索引的列。

             4、Drop:删除索引、表和数据库

             ALTER TABLE table_name DROP INDEX index_name

             DROP table table_name

             DROP DATABASE 数据库名

             5、Alter Table:添加修改和删除列

    如需在表中添加列,请使用下列语法:
    ALTER TABLE table_name
    ADD column_name datatype
    要删除表中的列,请使用下列语法:
    ALTER TABLE table_name 
    DROP COLUMN column_name
    注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。
    要改变表中列的数据类型,请使用下列语法:
    ALTER TABLE table_name
    ALTER COLUMN column_name datatype
    

      

  • 相关阅读:
    Merge Intervals
    Merge k Sorted Lists
    Sqrt(x)
    First Missing Positive
    Construct Binary Tree from Inorder and Postorder Traversal
    Construct Binary Tree from Preorder and Inorder Traversal
    Distinct Subsequences
    Reverse Nodes in k-Group
    Jump Game II
    Jump Game
  • 原文地址:https://www.cnblogs.com/yuhou/p/10710988.html
Copyright © 2020-2023  润新知