mysql数据库语法_MySQL数据库基本语法

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类型)以及⼆进制类型 。

a1bb2cf007908bd5a3a3c9200063dc2b.png

f754c72157ead3720f26110e7af43c0e.png

e171f4ce3fdae66d94515a0d034c0b68.png

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条件表达式

7c2f8e2e8416d437fdf16be5f213dc19.png

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

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

隔。

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

使用source命令

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

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

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

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

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

第⼆步:use 新的数据库

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值