Mysql 基本语句操作

进入、显示

cmd中,一条Mysql语句使用 ‘;’ 结尾,遇到‘;’时自动运行

mysql -u root -p 进入
exit 退出

显示数据库列表

show databases

显示数据库中数据表

show tables

查看数据表的完整性约束

show keys from tableName;

显示表结构

describe user;

创建数据库

test为数据库名

create database test

删除数据库

drop database <数据库名>;

选择数据库

use <数据库名>;

创建数据表

user为表名
not null 表示不能为空
unique 表示值唯一
ENGINE 设置存储引擎,CHARSET 设置编码。

create table user(
	id varchar(20) not null unique,
	psd varchar(20) not null
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

删除数据表

DROP TABLE table_name ;

往已有的表中添加、删除、修改列

//添加
ALTER TABLE table_name
ADD column_name datatype

//删除
ALTER TABLE table_name
DROP COLUMN column_name

//修改
ALTER TABLE table_name
MODIFY COLUMN column_name datatype

//指定位置添加列
ALTER TABLE table_name
ADD column_name datatype AFTER column_name

插入数据

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

查询数据

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

1.查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
2.SELECT 命令可以读取一条或者多条记录。
3.你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
4.你可以使用 WHERE 语句来包含任何条件。
5.你可以使用 LIMIT 属性来设定返回的记录数。
6.你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

SQL SELECT DISTINCT 语句

在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。

SELECT DISTINCT column_name,column_name
FROM table_name;

SQL WHERE 子句

WHERE 子句用于提取那些满足指定条件的记录。

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

//例: SELECT * FROM Websites WHERE country='CN';

SQL AND & OR 运算符

AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

SELECT * FROM Websites
WHERE country='CN'
AND alexa > 50;

SQL ORDER BY 关键字

ORDER BY 关键字用于对结果集进行排序。
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;

SQL INSERT INTO 语句

INSERT INTO 语句用于向表中插入新记录。

INSERT INTO 语句可以有两种编写形式。
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

INSERT INTO table_name
VALUES (value1,value2,value3,...);

第二种形式需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

SQL UPDATE 语句

UPDATE 语句用于更新表中已存在的记录。

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

在更新记录时要格外小心!如果我们省略了 WHERE 子句,
代码会将 表中所有数据都将改变
执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。

SQL DELETE 语句

DELETE 语句用于删除表中的记录。

DELETE FROM table_name
WHERE some_column=some_value;

SQL SELECT TOP, LIMIT, ROWNUM 子句

SELECT TOP 子句用于规定要返回的记录的数目。
SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。
并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。

SELECT column_name(s)
FROM table_name
LIMIT number;

SQL LIKE 操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

下面的 SQL 语句选取 name 以字母 “G” 开始的所有客户:

SELECT * FROM Websites
WHERE name LIKE 'G%';

SQL 通配符

通配符可用于替代字符串中的任何其他字符。

在 SQL 中,通配符与 SQL LIKE 操作符一起使用。
SQL 通配符用于搜索表中的数据。
在 SQL 中,可使用以下通配符:

%	替代 0 个或多个字符
_	替代一个字符
[charlist]	字符列中的任何单一字符
[^charlist][!charlist]	不在字符列中的任何单一字符

MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
下面的 SQL 语句选取 name 以 “G”、“F” 或 “s” 开始的所有网站:

SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';

下面的 SQL 语句选取 name 不以 A 到 H 字母开头的网站:

SELECT * FROM Websites
WHERE name REGEXP '^[^A-H]';

SQL IN 操作符

IN 操作符允许您在 WHERE 子句中规定多个值。

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

下面的 SQL 语句选取 name 为 “Google” 或 “菜鸟教程” 的所有网站:

SELECT * FROM Websites
WHERE name IN ('Google','菜鸟教程');

猜你喜欢

转载自blog.csdn.net/moasad/article/details/120668432