首页 > 代码库 > MySQL基本语法节选
MySQL基本语法节选
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 [数据库名称];
例如:
CREATEDATABASE 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.PRIMARYKEY 表示响应列的值为快速查找进行索引,并且保证每一个值唯一避免重复
(7).查询表的数据,结构
DESCRIBE [表名称];(或者使用简略写法DESC[表名称])
(8).显示当前数据库存在的表
SHOWTABLES;
(9).显示系统已经存在的数据库
SHOWDATABASES;
(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 “文件名”INTOTABLE [表名称]
使用语句读取文件来装入表
3.查询数据
(1).显示表内数据(WHERE)
SELECT * FROM [表名称];(显示所有列)
SELECT [列名] FROM [表名称] WHERE [条件];
(2).对结果进行排序(ORDERBY)
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).随机查询(ORDERBY 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)=var1AND DAYOFMONTH(date)=var2;确定月日分别为var1及var2的;
CURRENT_DATE:获取当前日期;
TO_DAYS:转换为天数;
FLOOR(计算式):转换为整数,就是截去小数部分,保留整数部分;
DATE_ADD(日期,INTERVALint YEAR);显示在日期基础上加intYEAR的结果;
DATE_SUB(日期,INTERVALint YEAR);显示在日期基础上减去intYEAR的结果;
5.模式匹配(LIKE/NOT LIKE)
使用正则来匹配查询结果;正则表达式元字符有:
%:匹配任意字符(包括空字符)
_:匹配任意单个字符
6.生成汇总
函数:
DISTINCT:删除查询结果中的重复行位置在SELECT关键词后,列名之前;
COUNT(*):计算行数,若为*则统计所有结果的行数;
COUNT([列名]):计算所有非空的行数;
COUNT(DISTINCT[列名]):计算所有不重复的结果数目;
可以对一个表中不同的值进行计数:使用如下语句
SELECT[新建名称]COUNT(*) FROM [表名称] GROUP BY [列名];通过列名下统计出现次数;
(GROUPBY :表示聚集所有此行/列的数据进行操作)
HAVING:在结果已经出现时对结果进行分类筛选,因为是结果出现后的筛选,所以可以使用前面定义的结果字段;
例如:GRUOPBY state HAVING count>1 ORDER BY count DESC;
汇总函数总结:
COUNT();MIN(),MAX(),SUM(),AVG();分别为计数,最小,最大,求和,平均值;
多模式查询语句:
LEFTJOIN:从MySQL连接每一行取出一个结果组成一个输出计入总表列在最Left的位置,此语句放置在FROM[表名称]后,语法为LEFTJOIN [列名]ON [条件];
建立表的实例(别名):[表名]AS [别名]
注意:
1.一条命令的完成以分号;结尾;
2.查询的语句不区分大小写,但是为了区分,使用全部大写表示;
3.USE语句可以不使用结束符(就是分号),还用HELP语句也是如此,当然加上分号也没有问题;
4.数据库mysql保存着MySQL的访问权限的授权表;
5.列名在MySQL中不区分大小写;