您的位置:首页 > 博客中心 > 数据库 >

MySQL基本语法节选

时间:2022-03-10 18:17

SQL(结构化查询语言)

 

mysql登陆

mysql -u root -p

 

创建数据库

 

CREATE DATABASE [数据库名称];

 ex:

CREATE DATABASE samp_db;

 

查询当前数据库

 

SELECT DATABASE();

 

选择数据库

 

USE [数据库名称];

ex:

 

USE samp_db;

 

 

 

创建表

 

CREATE TABLE [表名称]

 

 

[列名] [类型] [可能的列属性]

 

);

ex:

CREATE TABLE testTable

(

  test1 INT NOT NULL,

  ......

);

 

查询表的数据结构

 

DESCRIBE [表名称];(或者使用简略写法  DESC [表名称])

ex:

DESC testTable;

 

显示当前数据库存在的表

 

SHOW TABLES;

 

 

显示当前服务端已经建立的数据库

 

SHOW DATABASES;

 

插入语句

 

INSERT INTO [表名称] VALUES(var1,var2,var3......),(var1,var2,var3......),......;

 

INSERT INTO [表名称]([列名],...) VALUES(var1,...)(var1,....);

 

INSERT INTO [表名称] SET [列名]=var1,[列名]=var2,....(此时未初始化的都将赋予缺省值);

 

 

ex:

INSERT INTO testTable VALUES(10);

 

从文件中装入数据

 

LOAD DATA LOCAL INFILE “文件名”INTO TABLE [表名称]

ex:

LOAD DATA LOCAL INFILE test.sql INTO TABLE testTable;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~发布查询~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

显示所有表内数据

 

SELECT * FROM [表名称];(显示所有列)

 

ex:

SELECT * FROM testTable;

 

按条件查询

 

SELECT [列名] FROM [表名称] WHERE [条件];

ex:

 

SELECT test1 FROM testTable WHERE  test1>10;

 

对查询结果进行排序

 

 

 

SELECT [列名] FROM [表名称] ORDER BY [列名] [DESC/ASC];

DESC/ASC~~~表示升序/降序

 

限制显示条目数

 

SELECT [列名] FROM [表名称] ORDER BY [列名] [DESC/ASC] LIMIT [数目];

 

 

SELECT [列名] FROM [表名称] ORDER BY [列名] [DESC/ASC] LIMIT [var1],[var2];

 

显示第var1条记录开始的后var2条记录

 

随机显示结果顺序

 

SELECT [列名] FROM [表名称] ORDER BY RAND();

 

使用函数处理相关列之间的数据并显示到一个新的列中

 

SELECT [命名的列名] [函数调用] FROM [表名称];

 

SQL中的日期格式为0000-00-00

数据类型为DATA

 

 

原笔记如下:

 

数据库查询语言SQL

 


 

MySQL

 


 


 

1.登陆方式

 

mysql -u root -p

 

此时输入密码即可进入数据库的命令行

 


 


 

2.使用方式

 

(1).列出当前时间

 

SELECT NOW();

 

(2).可以将查询语句保存在名为拓展名为.sql的文件中并使用

 


 

(3).创建数据库

 

CREATE DATABASE [数据库名称];

 

例如:

 

CREATE DATABASE samp_db;

 

(4).查询当前数据库

 

SELECT DATABASE();

 

(5).选择使用数据库

 

USE [数据库名称];

 

 

 

选择数据库的另一个方法是在激活数据库时加载具体数据库

 

mysql [数据库名称](此语句在登陆数据库时使用)

 

下面是链接本地用户和网络服务器上的具体数据库的语句

 

mysql -u [用户名] -p [数据库名称]

 

mysql -h [服务器网址] -u [用户名] -p [数据库名称]

 

(6).创建表

 

CREATE TABLE [表名称]

 

 

[列名] [类型] [可能的列属性]

 

);

 

 

 

说明:

 

数据类型:

 

1.VARCHAR(n)代表可变长度的字符(串)值,其最大长度为n;

 

2.DATE 表示该列存储的为日期值 其标准格式为YYYY-MM-DD(这是ANSI-SQL标准);

 

3.ENUM()枚举类型;

 


 

可能属性:

 

1.NOT NULL 表示非空;

 

2.NULL 表示可以为空;

 

3.DEFAULT “0000-00-00” 此语句紧跟DATA类型后面,表示使用此缺省值格式化日期;

 

4.UNSIGNED 不允许负数;

 

5.AUTO_INCREMENT 表示创建表若是遗漏了此数据,则自动生成一个比当前此列数值大一个单位的值;

 

6.PRIMARY KEY 表示响应列的值为快速查找进行索引,并且保证每一个值唯一避免重复

 


 


 

(7).查询表的数据,结构

 

DESCRIBE [表名称];(或者使用简略写法DESC [表名称])

 

(8).显示当前数据库存在的表

 

SHOW TABLES;

 

(9).显示系统已经存在的数据库

 

SHOW DATABASES;

 

(10).插入语句

 

INSERT INTO [表名称] VALUES(var1,var2,var3......),(var1,var2,var3......),......;

 

INSERT INTO [表名称]([列名],...) VALUES(var1,...)(var1,....);

 

INSERT INTO [表名称] SET [列名]=var1,[列名]=var2,....(此时未初始化的都将赋予缺省值);

 

(11).装入数据

 

LOAD DATA LOCAL INFILE “文件名”INTO TABLE [表名称]

 

使用语句读取文件来装入表

 


 


 

3.查询数据

 

(1).显示表内数据(WHERE)

 

SELECT * FROM [表名称];(显示所有列)

 

SELECT [列名] FROM [表名称] WHERE [条件];

 

(2).对结果进行排序(ORDER BY)

 

SELECT [列名] FROM [表名称] ORDER BY [列名] [DESC/ASC];

 

按照选定的列名进行排序显示查询结果(DESC/ASC为可选参数,表示倒序/正序),默认为正序。

 

(3).限制查询(LIMIT)

 

SELECT [列名] FROM [表名称] ORDER BY [列名] [DESC/ASC] LIMIT [数目];

 

限制显示的结果数目(就是显示数据行数)

 

(4).限制查询2(LIMIT)

 

SELECT [列名] FROM [表名称] ORDER BY [列名] [DESC/ASC] LIMIT [var1],[var2];

 

显示第var1条记录开始的后var2条记录

 

(5).随机查询(ORDER BY RAND())

 

SELECT [列名] FROM [表名称] ORDER BY RAND();

 

可以与LIMIT结合查询,可以随机显示表内的数据

 

(6).计算并且命名输出的数据列值

 

SELECT [命名的列名] [函数调用] FROM [表名称];

 

不使用命名的话默认以函数调用名来显示列名;

 

或使用

 

SELECT [函数调用] AS [列名] FROM [表名称];(注意若是猎命需要空格,需要使用双引号括起)

 


 

常用函数

 

FORMAT (function,int):格式化显示计算结果,function函数调用结果+int位精度(小数点后几位);

 

CONCAT(str1,str2,...):连接字符串

 


 


 

4.处理日期

 

日期格式为”1999-01-01”,共计八位,可以进行比较,例如使用语句:

 

SELECT * FROM event WHERE date >=”1999-01-01”,表示日期在此日期之后的数据被查找出来

 

1.常用函数

 

YEAR(日期):显示日期的年份;

 

MONTH(日期):显示日期的月份;

 

DAYOFMONTH(日期):显示日期的日子;

 


 

可以通过结合MONTH()与DAYOFMONTH()来确定具体筛选的日期,即 MONTH(date)=var1 AND DAYOFMONTH(date)=var2;确定月日分别为var1及var2的;

 


 

CURRENT_DATE:获取当前日期;

 

TO_DAYS:转换为天数;

 

FLOOR(计算式):转换为整数,就是截去小数部分,保留整数部分;

 

DATE_ADD(日期,INTERVAL int YEAR);显示在日期基础上加 int YEAR的结果;

 

DATE_SUB(日期,INTERVAL int YEAR);显示在日期基础上减去 int YEAR的结果;

 


 


 

5.模式匹配(LIKE /NOT LIKE)

 

使用正则来匹配查询结果;正则表达式元字符有:

 

%:匹配任意字符(包括 空字符)

 

_ :匹配任意单个字符

 


 

6.生成汇总

 

函数:

 

DISTINCT:删除查询结果中的重复行位置在SELECT关键词后,列名之前;

 

COUNT(*):计算行数,若为*则统计所有结果的行数;

 

COUNT([列名]):计算所有非空的行数;

 

COUNT(DISTINCT [列名]):计算所有不重复的结果数目;

 


 

可以对一个表中不同的值进行计数:使用如下语句

 

SELECT [新建名称] COUNT(*) FROM [表名称] GROUP BY [列名];通过列名下统计出现次数;

 

(GROUP BY :表示聚集所有此行/列的数据进行操作)

 

HAVING : 在结果已经出现时对结果进行分类筛选,因为是结果出现后的筛选,所以可以使用前面定义的结果字段;

 

例如:GRUOP BY state HAVING count>1 ORDER BY count DESC;

 


 

汇总函数总结:

 

COUNT ();MIN(),MAX(),SUM(),AVG();分别为计数,最小,最大,求和,平均值;

 

 

 


 

多模式查询语句:

 

LEFT JOIN:从MySQL连接每一行取出一个结果组成一个输出计入总表列在最Left的位置,此语句放置在FROM [表名称]后 ,语法为 LEFT JOIN [列名] ON [条件];

 

建立表的实例(别名):[表名] AS [别名]

 


 


 


 


 


 


 


 


 


 


 


 


 


 


 

注意:

 

1.一条命令的完成以分号 ; 结尾;

 

2.查询的语句不区分大小写,但是为了区分,使用全部大写表示;

 

3.USE 语句可以不使用结束符(就是分号),还用HELP语句也是如此,当然加上分号也没有问题;

 

4.数据库mysql保存着MySQL的访问权限的授权表;

 

5.列名在MySQL中不区分大小写;

 

MySQL基本语法节选,布布扣,bubuko.com

热门排行

今日推荐

热门手游