mysql 中一些SQL语法

SELECT - 从数据库表中获取数据

UPDATE - 更新数据库表中的数据

DELETE - 从数据库表中删除数据

INSERT INTO - 向数据库表中插入数据

CREATE DATABASE - 创建新数据库

Create  数据库名

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

CREATE TABLE 表名称 称1 数据类型,列名称2 数据类型,列名称3 数据类型,....)

 

 

ALTER TABLE - 变更(改变)数据库表

DROP TABLE - 删除表

CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

 

 

查看当前所有数据库

SHOW   DATABASES

 

 

选择aaa数据库

USE  aaa

 

 

查看表里所有列名称

SHOW   TABLES;

Select table_name from information_schema.tables where table_schema=’库名’ limit 0,1;

 

查询magic_user表中所有内容

SELECT * FROM magic_user

查询表中aaa列的所有内容

SELECT aaa FROM aaa

查询表中多个列名内容

SELECT aaa,bbb,ccc 列名称 FROM aaa

 

 

去除列中重复值

SELECT DISTINCT  id  from aaa

比如说查询user表email列中所有不通值

SELECT DISTINCT email form user

 

 

Where 使用   

SELECT * FROM 表名 where id=‘条件’

也可以用=、<>、>、<、<=、>=、between、like等

Between(某个范围)和like(搜索某种模式)使用方法

SELECT * FROM 表名 where id beteeen 6500 and8600

SELECT * FROM 表名 where id like ‘%4%’                                     (通配符’%1’以1结尾                                     ‘1%’以1开头 ‘%1%’所有包含1的的字符,中间可多个字符)

 

 

And  or 由于注入经常使用,这里我就不多说了。

 

 

Order by

SELECT * FROM 表名 order by id            默认顺序

SELECE * FROM 表名 order by id desc   倒叙

 

 

Insert插入

INSERT   表名       values     (值1,值2,……)

INSERT   表名       (列表)    values     (值1,值2,……)

 

 

Update更改

Update 表名称 set 列名=新值where 列名称=某值

例:update magic_user set username=’ddd’ where id=3

也可以修改多出,中间添加逗号即好

 

 

Delete 删除

Delete  from 表名  where 列名=值

删除所有行

Delete    from 表名

Delete * from 表名

 

 

Top  语句MySQL 不能使用这个语法,可以用limit代替使用,这里我就把top的使用方法就直接放在下面

SELECT TOP number|percent 字段名from 表名

Limit 之前where 语句已经使用方法已经标注上面了

 

 

通配符:

% 代表一个或多个字符                          _仅代表一个字符       

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

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

由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)

为了找出以“b”开头的名字,使用“^”匹配名字的开始并且“[bB]”匹配小写或大写的“b”

mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";

为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:

mysql> SELECT * FROM pet WHERE name REGEXP"fy$";

为了找出包含一个“w”的名字,使用“[wW]”匹配小写或大写的“w”

mysql> SELECT * FROM pet WHERE name REGEXP"[wW]";

为了找出包含正好5个字符的名字,使用“^”“$”匹配名字的开始和结尾,和5“.”实例在两者之间:

mysql> SELECT * FROM pet WHERE name REGEXP"^.....$";

你也可以使用“{n}”“重复n操作符重写先前的查询:

mysql> SELECT * FROM pet WHERE name REGEXP"^.{5}$";

 

 

in操作符

查看列 表中值1值2所对应的值

select * from 表名 where 列名 in (值1,值2……)

 

 

between 操作符

在where同样使用到过(显示值1(包括),值2(不包括)之间的值),其语法如下:

Select * from 表名 where 列名 between 值1and 值2    

上面是数字,字符的情况如下    

 

查看值1到值3之外的值

Select * from 表名 where 列名 not between 值1 and 值2

 

 

Aliases 别名

表的别名  (这里我有点弄不懂,)

SELECT column_name(s) FROM table_name AS alias_name

列的别名

SELECT column_name AS alias_name FROM table_name

 

 

 

Join 和Key

有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。

数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

 

SELECT Persons.LastName, Persons.FirstName,Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P

 

这个我不太会用,还是得再网上找一下使用方法

 

 

 

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

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

UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。语法:

SELECT column_name(s) FROM table_name1  union select columns_name from table_name2

 

 

SELECT INTO 语句

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

SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

 

 

constraints

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

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

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
  • DEFAULT

 

 

 

NOT NULL 约束强制列不接受 NULL 值。

NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))
 
其他数据库语句:

CREATE TABLE Persons(Id_P int NOT NULL PRIMARYKEY,LastName varchar(255) NOT NULL,FirstName varchar(255),Addressvarchar(255),City varchar(255))

 

 

CREATE INDEX 语句用于在表中创建索引。

在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。

CREATE INDEX index_name no table_name(columns_name)

如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字DESC

CREATE INDEX PersonIndex on person (lastname desc)

 

假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:

CREATE INDEX PersonIndex on person (lastname firstname)

 

 

通过使用 DROP 语句,可以轻松地删除索引、表和数据库。

 

DROP INDEX table_name.index_name

DROP TABLE 表名称

DROP DATABASE 数据库名称
TRUNCATE TABLE 表名称

其他数据库语法,请自行查阅

 

ALTER TABLE 语句

ALTER TABLE 语句用于在已有的表中添加、修改或删除列。

 

 

后面还有很多函数,我也只是了解了一下,没有亲自出尝试,大家有兴趣的话也可以在这个网站上查看一下怎么只用。

http://www.w3school.com.cn/sql/sql_func_format.asp

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页