最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

sql数据库常用命令

来源:动视网 责编:小OO 时间:2025-10-05 04:37:38
文档

sql数据库常用命令

显示当前服务器版本:selectversion();显示当前日期时间:selectnow();显示当前用户:selectuser();----------------------------------------------------------------------------MySQL语句规范:关键字与函数名称全部大写;数据库名称、表名称、字段名称全部小写;SQL语句必须以分号结尾。---------------------------------------------------
推荐度:
导读显示当前服务器版本:selectversion();显示当前日期时间:selectnow();显示当前用户:selectuser();----------------------------------------------------------------------------MySQL语句规范:关键字与函数名称全部大写;数据库名称、表名称、字段名称全部小写;SQL语句必须以分号结尾。---------------------------------------------------
显示当前服务器版本:

select version();

显示当前日期时间:

select now();

显示当前用户:

select user();

----------------------------------------------------------------------------

MySQL语句规范:

关键字与函数名称全部大写;

数据库名称、表名称、字段名称全部小写;

SQL语句必须以分号结尾。

----------------------------------------------------------------------------

创建数据库: // 其中{}内为必需,[]内为可选

CREATE {DATABASE 或 SCHEMA} [IF NOT EXISTS] db_name

[DEFAULT] CHARACTER SET [=] charset name

例如创建一个名为t1的数据库:

CREATE DATABASE t1;

---------------------------------------------------------------------------

查看当前服务器下的数据库列表:

SHOW {DATABASES 或 SCHEMAS}

[LIKE 'pattern'或WHERE expr]

查看警告信息:

SHOW WARNINGS;

---------------------------------------------------------------------------

修改数据库:

ALTER {DATABASE 或SCHEMA} [db_name]

---------------------------------------------------------------------------

删除数据库:

DROP{DATABASE 或 SCHEMA} [IF EXISTS] db_name

---------------------------------------------------------------------------

数据表:

打开数据库:USE 数据库名称;

----------------------------------------------------------------------------

创建数据表:

CREATE TABLE [IF NOT EXISTS] table_name (column_name data_type,....)

例如:

CREATE TABLE tb1(

username VARCHAR(20),age TINYINT(UNSIGNED)

);

-------------------------------------------------------------------------------

查看数据表:

SHOW TABLES[FROM db_name];

-------------------------------------------------------------------------

查看数据表的结构:

SHOW COLUMNS FROM tbl_name;

---------------------------------------------------------------------------

插入记录:

INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,....);

例如:INSERT tb1(username,age) VALUES('Tom',25);

----------------------------------------------------------------

记录查找:

SELECT expr,...FROM tbl_name;

例如:SELECT *FROM tb1;

-------------------------------------------------------------

AOTO_INCREMENT

自动编号(记录的唯一性):

自动编号,且必须与主键(PRIMARY KEY)组合使用;

默认情况下,起始值为1,每次的增量为1;

--------------

PRIMARY KEY (可以不和自动编号一起使用)

主键约束;每张数据表只能存在一个主键;主键保证记录的唯一性;

主键自动为NOT NULL

例如:

id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY;

---------------

UNIQUE KEY

唯一约束;可以保证记录的唯一性;唯一约束的字段可以为空值(NULL);

每张数据表可以存在多个唯一约束;

----------------

DEFAULT

默认值;当插入记录是,如果没有明确为字段赋值,则自动赋予默认值

-----------------------------------------------------------------------------

约束

1.约束保证数据的完整性和一致性;

2.约束分为表级约束和列级约束;

3.约束类型包括:NOT NULL(非空约束)

PRIMARY KEY(主键约束)

UNIQUE KEY(唯一约束)

DEFAULT(默认约束)

FOREIGN KEY(外键约束)

--------------------------------------

FOREIGB KEY(外键约束)

保持数据一致性,完整性;实现一对一或一对多关系。

要求:1.父表和子表必须使用相同的存储引擎,而且禁止使用临时表;

2.数据表的存储引擎只能为InnoDB;(default-storage-engine=INNODB)

3.外键列和参照列必须具有相似的数据类型。其中数字的长度

或是否有符号位必须相同;而字符的长度则可以不同;

4.外键类和参照列必须创建索引,如果外键列不存在索引的花,

MySQL将自动创建索引

-------------

外键约束的参照操作:

1.CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行;

2.SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL,

如果使用该选项,必须保证子表列没有指定NOT NULL;

3.RESTRICT:拒绝对父表的删除或更新操作;

4.NO ACTION:标准的SQL的关键子。在MySQL中与RESTRICT相同;

---------------------------------------------------------

表级约束和列级约束

列级约束既可以在列定义时声明,也可以在列定义后声明。

表级约束只能在列定义后声明。

--------------------------------------------------------

修改数据表:

添加单列:ALTER TABLE btl_name ADD[COLUMN] col_name column_definition [FIRST\\AFTER col_name]

例如:ALTER TABLE users ADD age TINYINT NULL DEFAULT 10,

ALTER TABLE users ADD PASSWORD VARCHAR(32) NOT NULL AFTER username,

添加多列:ALTER TABLE tbl_name ADD[COLUMN] (col_name column_definition,....)

删除列:

ALTER TABLE tbl_name DROP [COLUMN] col_name

例如:同时删除password和age两列

ALTER TABLE users DROP password,DROP age,

--------------------------------------------------------------------------------

修改数据表:

添加主键约束:ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY

[index_type](index_col_name)

添加唯一约束:ALTER TABLE tbl_name ADD[CONSTRAINT [symbol]] UNIQUE [INDEX\\KEY]

[index_name] [index_type](index_col_name,....)

添加外键约束:ALTER TABLE tbl_name ADD[CONSTRAINT [symbol]] FOREIGN KEY

[index_name](index_col_name,...) reference_definition

添加删除默认约束:

ALTER TABLE tbl_name ALTER[COLUMN] col_name {SET DEFAULT literal|DROP DEFAULT}

例如:

ALTER TABLE users ALTER age SET DEFAULT 15,

------------------------------------------------------------------------------

删除主键约束:

ALTER TABLE tbl_name DROP PRIMARY KEY

删除唯一约束:

ALTER TABLE tbl_name DROP {INDEX|KEY} index_name

删除外键约束:

A

LTER TABLE tbl_name DROP FOREIGN KEY fk_symbol

-----------------------------------------------------------------------------

修改列定义:

ALTER TABLE tbl_name MODIFY [COLUMN] col_name colun_definition [FIRST|AFTER col_name]

例如:将id列放到第一列:

ALTER TABLE users MODIFY id SMALLINT UNSIGNED NOT NULL FIRST,

修改列名称:

ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name

column_definition [FIRST|AFTER col_name

例如:

ALTER TABLE users CHANGE pid] p_id TINYINT UNSIGNED NOT NULL,

数据表更名:

方法1:ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name

方法2(可以为多张数据表更名):RENAME TABLE tbl_name TO new_tbl_name[,tbl_name2 TO new_tbl_name2]

--------------------------------------------------------------------------------

INSERT:

插入记录方法一:

INSERT [INTO] tbl_name [(col_name,...)] {VALUES|VALUE} ({exor|DEFAULT},..),(...)

例如:INSERTT users VALUES(DEFAULT|NULL ,'Tom','123',15,1),(NULL,'John','456',18,1),

----------------------------------------------------------------

插入记录方法二(与第一中方式的区别在于,此方法可以使用子查询(SubQuery),一次性只能插入一条记录,所以此方法使用较少):

INSERT [INTO] tbl_name SET col_name={expr|DEFAULT},..

例如:INSERT users SET username='ben',password='456',

-----------------------------------------------------------------

插入记录方法三(此方法可以将查询结果插入到指定数据表)

INSERT [INTO] tbl_name [(col_name,...)]SELECT...

例如:

-------------------------------------------------------------------------------

UPDATE

更新记录(单表更新):

UPDATE [LOW_PRIORITY][IGNORE] table_reference SET col_name1={expr1|DEFAULT}

[,col_name2={expr2|DEFAULT}]....[WHERE where_condition]

例如:

UPDATE users SET age = age + 5;

UPDATE users SET age = age - id,sex = 0;

UPDATE users SET age = age + 10,WHERE id % 2 =0;

---------------------------------------------------------------------------

DELETE:

删除记录(单表删除):

DELETE FROM tbl_name [WHERE where_condition]

例如:DELETE FROM users WHERE id = 6;

----------------------------------------------------------------------------

SELECT

查找记录:

SELECT select_expr[,select_expr...]

----------

select_expr

查询表达式: 每个表达式表示想要的一列,必须有至少一个。

多个列之间以英文文逗号分隔。

星号(*)表示所有列。tbl_name.*可以表示命名表的所有列。查询表达式可以使用[AS]alias_name为其赋予别名。

别名可以用GROUP BY,ORDRE BY 或HAVING子句。

例如: SELECT id ,username FROM users;

SELECT username , id FROM users;

SELECT users.id,users.username FROM users;

SELECT id AS userID,username AS uname FROM users;

-------------------------------------------------------------------------------

WHERE

条件

表达式:对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。

在WHERE表达式中,可以使用MySQL支持的函数或运算符。

------------------------------------------------------------------------------

GROUP BY

查询结果分组:[GROUP BY {col_name|position} [ASC(升序)|DESC(降序)],..]

例如:按照性别分组:

SELECT sex FROM user GROUP BY sex

----------------------------------------------------------------------------

HAVING

分组条件:[HAVING where_condition]

例如:SELECT sex,age FROM users GROUP BY 1 HAVING age >35;

---------------------------------------------------------------------------

ORDER BY

对查询结果进行排序:[ORDER BY{col_name|expr|position}[ASC|DESC],...]

例如:按降序排序:

SELECT * FROM users ORDER BY id DESC;

--------------------------------------------------------------------

LIMIT

查询结果返回的数量:[LIMIT {[offset,] row_count|row_count OFFSET offset}]

例如:SELECT*FROM users LIMIT 2,2

文档

sql数据库常用命令

显示当前服务器版本:selectversion();显示当前日期时间:selectnow();显示当前用户:selectuser();----------------------------------------------------------------------------MySQL语句规范:关键字与函数名称全部大写;数据库名称、表名称、字段名称全部小写;SQL语句必须以分号结尾。---------------------------------------------------
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top