SQL实战语句总结一.docx
- 文档编号:5728081
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:16
- 大小:25.86KB
SQL实战语句总结一.docx
《SQL实战语句总结一.docx》由会员分享,可在线阅读,更多相关《SQL实战语句总结一.docx(16页珍藏版)》请在冰豆网上搜索。
SQL实战语句总结一
DB(DataBase)SQL语句
关系数据库的知识技能:
C/s架构:
服务器,客户端模式;
概念:
DBServer,DB,Table,Rocord,field;
1)数据库系统,采用C/S架构。
分为Server端软件和Client端软件;数据集中存放在服务器端,安全,且易于管理(增、删、改、查);
2)什么是DBServer?
是某一个厂商写的,运行、管理数据库的大型软件。
需安装在一台机器上,供客户端来访问,为客户端提供数据服务。
该软件大致分为两个部分:
管理部分数据存放部分
||
DBMSDB、Table、record、field
3)什么是库、表、记录、字段?
数据库服务器上,存放数据的组织形式。
什么是DBMS?
DBServer软件中,管理、操作DB的部分;
//要管理用户、建立与Client连接,接受访问请求,操作DB、Table数据存取,
返回访问结果及其查询数据。
什么是SQL?
(StructuredQueryLanguage),SQL是Client端操作DBMS的专用数据库命令语言。
什么是DDL?
操作目标:
DB库的结构、Table表的结构、索引的建立删除。
SQL:
createdatabase'库名';Dropdatabase'库名';
createtable'表名';droptable'表名';altertable'表名'renameto'新表名'...
createindex'索引名';dropindex'索引名';
Index-------索引
为了加快搜索速度,减少查询执行时间,可为一张表的一个特定字段,设置索引。
.
索引实质就是一个字段值的排序列表。
用于快速定位目标记录。
缺点:
i)另外占用disk空间。
ii)影响insert、update、delete执行效率。
必须重建索引。
1)建Index:
CreateTable时,建索引。
mysql>createtable表名(.....,
INDEX索引名(某字段名)//给指定字段,建立索引。
INDEX(某字段名),INDEX(某字段名),//索引名缺省=字段名
INDEX(某字段名,某字段名)...//建立多个索引。
向已经存在的表,添加索引。
mysql>CREATEINDEX索引名ON表名(某字段名,某字段名,...);
//字段为BLOBTEXT时,可强制性指定字符个数,为它们添加索引:
|
mysql>CREATEINDEX索引名ON表名(某字段名(93))
2)删除Index:
mysql>DROPINDEX索引名ON表名;
安装Mysqlserver:
常用操作:
Mysql在cmd模式下关闭与打开服务的两种方法
1.方法一:
适用于已经安装Mysql服务的情况:
cmd下输入netstartmysql
2.方法二:
适用于未安装Mysql服务的情况:
cmd下到Mysql的bin目录下运行mysqld-nt
关闭
1.方法一:
适用于已经安装Mysql服务的情况:
cmd下输入netstopmysql
2.方法二:
适用于未安装Mysql服务的情况:
cmd下到Mysql的bin目录下运行mysqladmin-u[username]-p[password]shutdown
-----------------------------------------------------------------------------------------------------------------------
SQL管理的部分
登陆本机:
bin目录下:
mysql-hlocalhost-uroot-proot
1)显示版本号mysql>selectversion();
当前日期mysql>......current_date;
......curdate();
mysql>......now();
mysql>selectversion(),current_date;//一行显示多个命令。
//两条查询结果,会被临时组合在一个结果表里;
2)显示DB当前用户:
mysql>selectuser();
查看当前Server状态:
mysql>status;
显示server支持的字符集:
SHOWCHARACTERSET;
................中文...:
SHOWCOLLATIONLIKE'%chinese%';
设置当前客户端操作的字符集:
mysql>setcharsetgb2312;//或utf8;latin1;
设置服务器端的字符集:
重构;
1)查看已有用户:
前提:
需先mysql>usemysql;//打开MysqlServer为你创建的mysql系统库,才可以访问其中含的用户表(包含所有用户);
mysql>select*fromuser;//查看所有用户及其所有权限(字段);
selecthost,userfromuser;//仅查看用户;
//安装MySQLServer时,会自动创建两个数据库,其中一个是MySQL系统数据库mysql,
含有5个MySQL授权表,其中一个表(《user》)包含MySQL上所有用户信息。
简单DB操作:
mysql>showdatabases;//显示("秀")当前连接的DBServer一共有几个DB;
.....>usemysql;//打开其中某个DB;
.....>showtables;//显示该DB中有几张表;
.....>selecthost,userfromuser;//查看表中内容;
2)新建一个user:
例子:
mysql>createuserducaidentifiedby"111";---建成一个%远程用户。
createuserduca@localhostidentifiedby"111";---建成一个localhost用户。
//注意:
用户必需唯一。
|---用户密码。
//如此创建的用户,尚没有任何权限;
3)新建的user,需赋予权限:
||
mysql>grant权限名,权限名,权限名,权限名on库名.表名to用户名@主机名identifiedby"密码";||||例:
select,insert,delete,update*.*duca@localhost;赋给该用户的
或test.aaaa密码
mysql>grantselect,insert,delete,updaton*.*toducaidentifiedby"duca";
...toduca@localhostidentifiedby"duca";
4)删除用户:
例子:
mysql>dropuserdudu@localhost;----仅删除本地该用户;
dropuserduca2;--------------仅。
。
远程该用户;
附:
MySQL权限等级:
.
SELECT:
INSERT:
DML权限
UPDATE:
DELETE:
CREATE:
DDL权限
ALTER:
DROP:
RELOAD:
重载|刷新MySQL服务器。
SHUTDOWN:
关闭正在运行的MySQL服务器。
PROCESS:
在MySQL服务器上跟踪一项活动。
FILE:
在服务期上读、写文件。
GRANT:
授予其他用户权限。
这些权限只能是本用户现在拥有的权限中的一部分。
INDEX:
创建、编辑、删除表索引。
REFERENCES:
创建、编辑、删除外键引用。
SHOWDATABASES:
浏览可用的DB。
SUPER:
执行管理命令。
CREATETEMPORARYTABLES:
创建临时表。
LOCKTABLES:
创建、删除表锁。
EXECUTE:
执行被保存的程序。
REPLICATIONSLAVE:
在复制内容中读主二进制日志。
REPLICATIONCLIENT:
在.........申请主、副信息。
◆DB---------库
1)显示当前已有DB:
mysql>showdatabases;
2)新建一个DB:
mysql>createdatabase新库名;//一般同项目名;bookstore;
删除一个DB:
drop..............;//同时删除里面所有的表(及表中数据)、索引
3)打开一个DB:
mysql>use库名;
4)显示当前选择的DB:
mysql>SELECTDATABASE();
5)备份DB:
...\bin>mysqldump-u用户名-p密码库名>盘符:
\库名.sql//将DB整个===>导入一个.sql文件
例子:
D:
\masql6.0\bin>mysqldump-uroot-prootmysql>d:
\mysqldb.sql
//图形界面,叫---Tool---ExtractDB//EMS可SQLScript执行导出的sql文件,恢复数据库。
萃取
◆Table-------表
4)显示当前DB下的所有Table:
mysql>showtables;显示某个DB下的所有Table:
mysql>showtablesfrom库名;//show..frommysql;
)描述一张Table的结构:
mysql>desc表名;//显示所有字段信息;(字段名|字段类型)
//更改字符集:
mysql>setcharsetgbk;
例子:
showdatabases;
useqq;
showtables;
desctable2;
select*fromtable2;
6)新建一张Table:
mysql>createtable表名(字段名type(长度)NOTNULLdefault'值',-------某个字段的定义SQL类型非空缺省缺省值---为字段指定一个默认
或不写或NULL值,自动填上。
为可空空缺省值
.........................,
字段名type(长度),.......,
PRIMARYKEY('主键字段名')-----------------主键字段指定
)TYPE=InnoDB----------------------------表类型定义
DEFAULTCHARSET=utf8;---------------------表的缺省字符集
例子:
//一个正确的单表创建语句:
CREATETABLE`user`(//单引号,可以全部不要。
单引号用~键上的那个的`。
default''此单引号,可用"键上的
`userid`int(11)NOTNULLauto_increment,
`username`varchar(8)defaultNULL,
`gender`varchar(6)defaultNULL,
`age`int(4)defaultNULL,
PRIMARYKEY(`userid`),
)ENGINE=InnoDBDEFAULTCHARSET=utf8//InnoDB,支持事务处理。
字符集设置。
例2:
CREATETABLE`aaaa`(
`businesskey`varchar(6)defaultNULL,
`field2`int(11)NOTNULLdefault'0',
`field3`varchar(4)defaultNULL,
`caroid`int(12)defaultNULL,
PRIMARYKEY(`field2`),
KEY`caroid`(`caroid`),
)ENGINE=InnoDBDEFAULTCHARSET=utf8
7)删除一张表:
mysql>droptable表名;//会删除数据;
8)改变表结构:
字段==
添加新字段:
mysql>altertable表名add新字段名type(长度);
━━━━━━━━━━━━
修改原字段:
mysql>altertable表名change原字段名新字段名新type(新长度);
━━━━━━━━━━━━━━━━━━━━
删除某字段:
mysql>altertable表名drop字段名;
━━━━━━
表==
修改表名:
mysql>altertable表名renameto新表名;
8)复制一张表:
mysql>CREATETABLE复制表名SELECT*FROM源表;//将所有字段,复制入新表。
copy表的结构,指定的字段值也会copy;
8)备份一张Table:
...bin>mysqldump-u用户名-p密码库名表名>盘符:
\*.sql//将表结构+记录===>导入一个.sql文件
//EMS图形界面:
ExportData。
选表---DataManipulation---ExportDataasSQLScript
9)恢复数据:
恢复库、表:
.
sql文件导入某DB中:
bin>mysql-uroot-p密码库名 \*.sql//将导回<=== 由普通数据文本文件导回数据。 ImportData。 选表---DataManipulation---ImportData--- 特别: txt导入工具。 ----------------------------------------------------------------------------------------------------------------------------------- ★MySQL的SQLType: (SQL字段类型) ━━━━━━━━ TINYINT--------1byte。 -128~127(有符号数);0~255(无符号数)常用于表达Boolean值。 true: 1false: 0 SMALLINT--------2byte。 -32768~32767(有符号数);0~65535(无符号数) MEDIUMINT--------3byte。 -8388608~8388607(....);0~16777215(.....) INT--------数值类型,整数,值范围: -2,147,483,648~2,147,483,647(有符号数)位数,是2的次方。 (INTEGER)0~4294967295(无符号数) BIGINT--------8byte。 FLOAT--------4byte。 -3.402823466E+38~1.175494351E-38;0;1.175494351E-38~3.402823466E+38(有符号数) 0;1.175494351E-38~3.402823466E+38(无符号数) DECIMAL--------数值类型,可浮点小数, DOUBLE--------数值类型,双精度浮点数。 DATE--------3byte。 YYYYMMDD格式日期字段。 1000-01-01~9999-12-31 TIME--------3byte。 HH: MM: SS格式时间字段。 DATETIME--------8byte。 YYYYMMDDHH: MM: SS格式日期/时间类型。 1000-01-0100: 00: 00~9999-12-3123: 59: 59 YEAR--------1byte。 YYYY或YY格式,范围在: 1901~2155之间的指定年的字段。 TIMESTAMP--------8byte。 YYYYMMDDHHMMSS格式的时间戳类型。 1970-01-0100: 00: 00~2037年的某个时候。 CHAR--------字符类型,长度固定。 最大长度255个字符。 VARCHAR--------........,变长。 .................。 位数是字符个数。 TEXT--------字符串类型。 ........65535个 BLOB--------二进制类型。 可变数据 ENUM--------可以从定义数值的列表上接受值的数据类型。 SET--------................集合上................。 ===TIMESTAMP的使用方法: 可以设置一张表当输入记录时,MySQL自动帮你记录,该记录的插入日期时间(戳)字段值的功能。 字段type定为: TIMESTAMP。 去掉usedimension小勾、NotNull、defaultcurrent_timestamp。 5)什么是关系数据? 什么是表的结构? 创建表的字段;(字段名|字段类型)//字段是表的基本属性结构; 什么是填充数据? (记录---表的字段值的一次具体化) 主键primarykey,是一个字段,其值用于唯一标识记录, 主键值必需唯一; 主键的作用: 表内区别记录用的; 主键建立的技巧: i)代理主键。 纯整型、自动增长的字段autoincrement;//mysql、sqlserver ii)业务主键。 利用业务数据中的某个字段//有些业务字段可以保证唯一性; 学号;身份证号;工号;警号;书号;航班号; 注册名;//邮箱 优点: 安全性高; ------------------------------------------------------------------------------------------------------------- SQL分为两部分: . SQL ┌───────────┴─────────────┐ [DBServer的管理部分][SQL数据操作部分] ┌───────────┴───────────┐ (DBA)用户、内存优化DMLDDL (DataManipulationLanguage)(DataDefinitionLanguage) ●DML操作-------DataManipulationLanguage. ◆记录---------insert、delete、update、select 字段 ------------------------------------------------数据库操作------------------------------------------------------ [单表] ====增==== (插入记录) 语法I): <指定字段名> ▲insertinto表名(某列名,某列名,某列名,.....)//在指定列名,插入值,形成一条记录,放入表中。 values(列值,列值,列值,......); 例: insertintostudent(name,age)values('zhang',25); <不指定字段名> ▲insertinto表名//缺省,自动从第一列1,列2,....插入值。 values(列值,列值,列值,......);//字段值必需从第一个字段开始,全部列出;不能缺少字段; 例: insertintostudentvalues('wang',29,'female');// //<字段值自动填充问题>: 遇到字段值是自动增长、TIMESTAMP等有DB自动插入的字段, 可用null暂时替代该字段值, <一句多记录> ▲一条InsertSQL,多条记录数据,可插入多条记录: INSERTINTO`customer2`(`ID`,`name`,`sex`,`age`,`product_ID`)VALUES. (1,'张三','男',30,2), (2,'李四','女',50,4), (3,'王五','男',60,4), (4,'刘六','女',40,NULL), (8,'刘六','女',40,NULL); 例子: showdatabases; useqq; select*fromproduct1; <指定字段名> insertinto`product1`(`ID`,`NAME`,`price`)values(4,'毛巾',5.0);/*标准*/ insertinto`product1`(`ID`,`NAME`,`price`,`date`)values(5,'裤子',12.2,'2009-06-16'); insertintoproduct1(`I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 实战 语句 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)