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

  

原文地址:https://www.cnblogs.com/yuhou/p/10710988.html