MySQL基础语句

Jeffrey, M 发布于 2022-07-06 487 次阅读


1、创建数据库 create database database-name

2、删除数据库 drop database database-name

3、修改数据库的名称 sp_renamedb 'old_name', 'new_name'

4、对数据库操作

  • 分离数据库 sp_detach_db;
  • 附加数据库sp_attach_db 后接表明,附加需要完整的路径名

5、备份sql server

  • 创建 备份数据的 device
    • use master
    • exec sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
  • 开始 备份
    • backup database pubs to testBack 

6、创建新表

  • create table <表名> (col1 type1 [not null] [primary key],col2 type2 [not null],..)
  • 根据已有的表创建新表: 
    • A:create table tab_new like tab_old (使用旧表创建新表)
    • B:create table tab_new as select col1,col2… from tab_old definition only

7、清空数据库表 truncate table <表名>

8、删除新表 drop table <表名>

9、增加一个列

  • Alter table <表名> add column col type
  • :列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

10、添加主键/删除主键

  • 新增主键:
    • Alter table tabname add primary key(col) 
  • 删除主键:
    • Alter table tabname drop primary key(col)

11、创建索引/删除索引

  • 创建索引
    • create [unique] index idxname on tabname(col….) 
  • 删除索引
    • drop index idxname
  • 注:索引是不可更改的,想更改必须删除重新建

12、创建视图/删除视图

  • 创建视图:
    • create view viewname as select statement
  • 删除视图:
    • drop view viewname

13、几个简单的基本的SQL语句

  • 选择:select * from tableName where 范围
  • 插入:insert into tableName (field1,field2) values(value1,value2)
  • 删除:delete from tableName where 范围
  • 更新:update tableName set field1=value1 where 范围
  • 模糊查找:select * from tableName where field1 like ’%value1%’
  • 排序:select * from tableName order by field1,field2 [desc]
  • 总数:select count as totalcount from tableName
  • 求和:select sum(field1) as sumvalue from tableName
  • 平均:select avg(field1) as avgvalue from tableName
  • 最大:select max(field1) as maxvalue from tableName
  • 最小:select min(field1) as minvalue from tableName

14、高级查询运算符( UNION/EXCEPT/INTERSECT

  • A:UNION 运算符 
    • UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 
  • B:EXCEPT 运算符 
    • EXCEPT运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
  • C:INTERSECT 运算符INTERSECT
    • 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 
    • 注:使用运算词的几个查询结果行必须是一致的。

15、几种外连接(LEFT/RIGHT/INNER)

  • 左外连接( left (outer) join )
    • 结果集几包括连接表的匹配行,也包括左连接表的所有行。 
    • SQL示例: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
  • 右外连接( right (outer) join )
    • 结果集既包括连接表的匹配连接行,也包括右连接表的所有行
  • 全外连接( full/cross (outer) join )
    • 不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录

16、分组(GTROUP BY)

  • 一张表,一旦分组完成后,查询后只能得到组相关的信息。
  • 组相关的信息:(统计信息)count,sum,max,min,avg 为分组的标准
  • 在SQL Server中分组时:不能以text,ntext,image类型的字段作为分组依据在selecte统计函数中的字段,不能和普通的字段放在一起;



微信扫描下方的二维码阅读本文

此作者没有提供个人介绍
最后更新于 2023-05-25