SQL

WHAT(SQL是什么?)

Structured Query Language:结构化查询语⾔

WHY(为何要使用SQL?)

难道仅仅使用SQL Server Management Studio操作数据库?

应用程序如何与数据库打交道?

WHEN(何时使用?)

对SQL Server执⾏所有的操作都可以

程序中的增删改查

HOW(怎么使用?)

...

四大SQL语句

数据定义语句DDL:

create、alter、drop、truncate(表结构)

数据操作语句DML:

insert、delete、update、select(数据)

数据控制语句DCL:

授权grant

收回权限:revoke

事务控制语句TCL:

开启事务:begin

提交:commit

回滚:rollback

数据库操作

创建数据库

SQL语句:

create database 数据库名;

create database stu_a;

-- 在建库时指定字符集,避免中文数据乱码的问题

create database stu_b default charset='utf8';

成功创建数据库后,数据库根目录下会自动创建数据库目录。

显示数据库结构

SQL语句:

show create database 数据库名;

可以查看数据库的相关信息(例如默认字符集等信息)。

删除数据库

SQL语句:

drop database 数据库名;

MySQL数据类型

MySQL提供的数据类型包括数值类型(整数类型和小数类型)、字符串类型、日期类型、复合类型(复合类型包括enum类型和set类型)以及⼆进制类型 。

decimal(length,precision)用于表示精度确定(小数点后数字的位数确定)的小数类型,length决定了该小数的最⼤位数,precision用于设置精度(小数点后数字的位数)。

例如:

decimal(5,2)表示小数取值范围:-999.99∼999.99

decimal(5,0)表示: -99999∼99999的整数。

char()与varchar():

例如对于简体中⽂字符集gbk的字符串⽽⾔,varchar(255)表示可以存储255个汉字,⽽每个汉字占用两个字节的存储空间。假如这个字符串没有那么多汉字,例如仅仅包含⼀个‘中’字,那么varchar(255)仅仅占用1个字符(两个字节)的储存空间;⽽char(255)则必须占用255个字符长度的存储空间,哪怕里面只储⼀个汉字。

表操作

创建数据库表

注意:在创建表之前,需要选择当前操作的数据库

Use 数据库名;

创建数据库表SQL语句:

use student;

create table stu(id int,name varchar(20));

create table stuinfo(

id int,

name char(20),

address char(50),

city char(50),

age int,

love char(50)

)default charset='utf8';

显示表结构

SQL语句:

desc 表名; -- 即可查看指定表的结构

SQL语句:

show create table 表名; -- 查看指定表的详细信息

删除表

SQL语句:

drop table 表名;

注意:删除表后,MySQL服务实例会自动删除该表结构定义的文件,以及数据、索引信息。该命令慎用!

删除字段

alter table 表名 drop 字段名

添加新字段

alter table 表名 add 新字段名 新数据类型 [新约束条件]

修改字段名

alter table 表名 change 旧字段名 新字段名 新数据类型

修改数据类型

alter table 表名 modify 字段名 新数据类型

修改表名

rename table 旧表名 to 新表名

数据的增、删、改、查

表记录的插入

SQL语句:

insert into 表名(字段列表) values(值列表);

提示:当插入的数据值的个数与表字段个数相同时,可以省略字段列表

insert stu(id,name) values(1,'newdream');

insert stu values(2,'newdream1');

一次插入多条记录

insert into 表名(字段列表) values (值列表1),(值列表2),...(值列表n);

insert into stu values(3,'new1'),(4,'new2'),(5,'new3');

使用insert...select插入结果

insert into 目标表名(字段列表1)

select(字段列表2) from 源表 where 条件表达式

insert into stu_bak(id,name)

select id,newname from stu where id>2;

注意:字段列表1与字段列表2的字段个数必须相同,且对应字段的数据类型尽量保持一致。

如果果源表与目标表的表结构完全相同,“(字段列表1)”可以省略。

复制表结构及数据到新表

create table 新表 select * from 旧表;

只复制表结构到新表

create table 新表 select * from 旧表 where 1=2;

修改表记录

update 表名 set 字段名1=值1,字段名2=值2,...,字段名n=值n

[where 条件表达式]

update stu set newname='new5' where id=1;

where 子句指定了表中的哪些记录需要修改。若省略了where子句,则表示修改表中的所有记录。

set子句指定了要修改的字段以及该字段修改后的值。

使用delete删除表记录

delete from 表名 where 条件表达式;

说明:如果没有指定wheree⼦句,那么该表的所有记录都将被删除,但表结构依然存在。

使用truncate清空表记录

truncate table 表名;

delete和truncate的区别

Delete不加WHERE条件是删除所有数据

Truncate不能够加WHERE条件

Delete可以加WHERE条件

Truncate会重置AUTO_INCREMENT

Delete可以进⾏回滚操作

表记录的查询

select 字段列表 from 表名

where条件表达式

表记录的查询—给列取别名

可以为字段列表中的字段名或表达式指定别名,中间使用as关键字分隔即可(as关键字可以省略)。多表查询时,同名字段前必须添加表名前缀,中间使用“.”分

隔。

Select id as ’学⽣学号’,newname ‘学⽣姓名’ from stu;

使用source命令

测试⼈员经常会和MySQL打交道,备份和恢复应该是最常用的操作了,那么通过直接执⾏sql⽂件⽆疑是最快捷的⽅式。

我们会把写好的sql语句保存成⼀个.sql⽂件进⾏备份;如果想在新的数据库中执⾏时,可以使用source命令进⾏恢复;

例如:在D盘的new⽂件夹中保存了dream.sql⽂件

(此⽅法只用在命令提示窗⼝)

第⼀步:可以先新建⼀个数据库;

第⼆步:use 新的数据库

第三步:Source d:\www\dream.sql

如此就把之前的表数据在新的数据库中进⾏恢复;之前的表及数据在新的数据库中都是存在的;

mysql数据库语法_MySQL数据库基本语法相关推荐

  1. mysql数据库语法_MySQL数据库语法(一)

    MySQL数据库语法 数据库管理系统(DBMS)的概述 什么是DBMS:数据的仓库 方便查询 可存储的数据量大 保证数据的完整.一致 安全可靠 DBMS的发展:今天主流数据库为关系型数据库管理系统(R ...

  2. mysql数据库sql语法_Mysql数据库SQL语句整理

    mysql [-h host] -u root -p 连接MySQL -h host:host代表要连接的主机地址 可以省略 -u root:root为MySQL中的管理员用户名 -p :root用户 ...

  3. mysql数据库写入数据的语法_mysql数据库插入数据语法

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. mysql数据库名语法_mysql数据库常用语法

    1)登录mysql数据库. mysql –uroot –poldboy123 mysql 2) 查看当前登录的用户. selectuser(); 3) 创建数据库oldboy,并查看已建库完整语句. ...

  5. Mysql常用词汇_mysql 数据库常用单词

    说明:以下单词可能有多种含义,此文档只针对编程做解释.单词不多,熟能生巧,每日认真读读写写,效果不错.如有错误,请谅解并指出,谢谢大家! 黄金超 2017-4-7 连接MySQL数据库: mysql ...

  6. mysql删除原则_MySQL数据库的增删选查

    数据库是专门存储数据对象的容器,这里的数据对象包括表.视图.触发器.存储过程等,其中表是最基本的数据对象. 创建数据库 在 MySQL 数据库中存储数据对象之前,先要创建好数据库. 语法: creat ...

  7. mysql select表达式_MySQL数据库SELECT查询表达式解析

    数据的管理在很大一部分是在进行查找工作,而SELECT占据了很大的一部分 SELECT select_expr [,select_expr...] [ FROM table_reference WHE ...

  8. 熟悉mysql基本数据库操作系统_MySQL数据库的基本操作

    1.数据库和数据库对象 数据库分为系统数据库和用户数据库. 数据库对象是指存储.管理和使用数据库的不同结构形式,主要包括表.视图.存储过程.函数.触发器和事务. 1.系统数据库 系统数据库是值安装完M ...

  9. mysql数据库财务_MySQL数据库——从入门到删库跑路(二)

    DQL 查询表中的记录 select .... from ..... 语法 select 需要查询的信息(列名1,列名2,.......列名n) / * from 表名 [where 条件]; 完善下 ...

最新文章

  1. 图形文件元数据管理工具exiv2
  2. pip无法更新_TensorFlow 2.0开发者测试版发布!每晚更新
  3. QQ目录里哪个文件是记录系统消息的?
  4. 声明和定义结构体需要注意的问题
  5. mysql存储过程删除重复记录
  6. html文件设置成mac屏保,Mac怎么设置屏幕保护?如何设置Mac屏幕保护程序?
  7. spring学习(49):javaconfig里面定义bean的作用域
  8. CentOS 7配置Let’s Encrypt支持免费泛域名证书
  9. 使用TFS存储项目文档
  10. fso 拒绝访问_CTBS问题及解决.docx
  11. 四川托普计算机职业学校教务管理系统,四川托普信息技术职业学院教务处
  12. 远程控制办公室电脑在家远程连接办公室电脑进行办公
  13. STM32常用的开发工具有哪些?
  14. R语言使用cph函数和rcs函数构建限制性立方样条cox回归模型
  15. Python编程PTA题解——一帮一学习小组
  16. 【醒悟】揭露炸鸡鸭背后的真相:一位良心发现者的自白
  17. 读书笔记—别让情绪毁了你(插图精读本)
  18. 解答:什么样的企业才适合引入OA办公系统?
  19. IntelliJ IDEA 快捷键大全
  20. Android OpenGl ES使用原理总结与代码示例

热门文章

  1. c语言中struct和c++中class实例对比
  2. mybatis配置文件解析
  3. 难忘的一天——装操作系统(二)
  4. Transformer的PyTorch实现
  5. CVD和ALD薄膜沉积技术应用领域
  6. Android多进程引发的问题
  7. java.lang.ArithmeticException: divide by zero
  8. AndroidManifest.xml
  9. RelativeLayout(相对布局)的分析
  10. 文本类控件 (TextView的介绍)