MySQL基本语句笔记(上)


一、数据库的基本操作

1.创建数据库

基本语法:

mysql> create database 数据库名称;

特别注意:在MySQL中,当一条SQL语句编写完毕后,一定要使用分号;进行结尾,否则系统认为这条语句还没有结束。

案例:创建数据库的相关案例

创建db1库
create database db1;

创建db1库并指定默认字符集
create database db1 default charset gbk;

如果存在不报错(if not exists)
create database if not exists db1 default character set utf8;
说明:不能创建相同名字的数据库!

扩展:编码格式,常见的gbk(中国的编码格式)与utf8(国际通用编码格式)

latin1 256个字符 (abcd、1234、传统字符)

国内汉字无法通过256个字符进行描述,所以国内开发了自己的编码格式gb2312,升级gbk

中国台湾业开发了一套自己的编码格式big5

很多项目并不仅仅只在本地使用,也可能支持多国语言,标准化组织开发了一套通用编码utf8,后来5.6版本以后又进行了升级utf8mb4

2.查询已创建数据库

基本语法:

显示所有数据库

mysql> show databases;

显示某个数据库的数据结构

mysql> show create database db_itheima;

3.修改数据库信息

mysql> alter database 数据库名称 default charset=新编码格式;

案例:把db_itheima数据库的编码格式更改为gbk

mysql> alter database db_itheima default charset=gbk;

4.删除数据库

基本语法:

mysql> drop database 数据库名称;

案例:删除db_itheima数据库

mysql> drop database db_itheima;

二、数据表的基本操作

1.数据表的创建

基本语法:

mysql> create table 数据表名称(
	字段1 字段类型 [字段约束],
	字段2 字段类型 [字段约束],
	...
); 

案例:创建一个admin管理员表,拥有3个字段(编号、用户名称、用户密码)

mysql> create database db_itheima;
mysql> use db_itheima;
mysql> create table tb_admin(
	id tinyint,
    username varchar(20),
    password char(32)
) engine=innodb default charset=utf8;

tinyint :微整型,范围-128 ~ 127,无符号型,则表示0 ~ 255

表示字符串类型可以使用char与varchar,char代表固定长度的字段,varchar代表变化长度的字段。

text :文本类型,一般情况下,用varchar存储不了的字符串信息,都建议使用text文本进行处理。

2.查询已创建数据表

显示所有数据表(当前数据库)

mysql> use 数据库名称;
mysql> show tables;

显示数据表的创建过程(编码格式、字段等信息)

mysql> show create table 数据表名称;
或
mysql> desc 数据表名称;

3.数据表字段添加

基本语法:

mysql> alter table 数据表名称 add 新字段名称 字段类型 first|after 其他字段名称;
选项说明:
first:把新添加字段放在第一位
after 字段名称:把新添加字段放在指定字段的后面

案例:在tb_article文章表中添加一个addtime字段,类型为date(年-月-日)

mysql> alter table tb_article add addtime date after content;
mysql> desc tb_article;

4.修改字段名称或字段类型

修改字段名称与字段类型(也可以只修改名称)

mysql> alter table tb_admin change username user varchar(40);
mysql> desc tb_admin;

仅修改字段的类型

mysql> alter table tb_admin modify user varchar(20);
mysql> desc tb_admin;

5.删除某个字段

mysql> alter table tb_article drop 字段名称;
mysql> desc tb_article;

6.修改数据表引擎(MyISAM或InnoDB)

mysql> alter table tb_article engine=myisam;
mysql> show create table tb_article;

7.修改数据表的编码格式

mysql> alter table tb_admin default charset=gbk;
mysql> show create table tb_admin;

8.修改数据表名称

移动表到另一个库里并重命名
rename table db01.t1 to db02.t11;
或者
alter table db01.t1 rename db02.t11;

只重命名表名不移动
rename table tt1 to tt2;
或者
alter table tt1 rename  tt2;

9.删除数据表

mysql> drop table 数据表名称;

三、数据的增删改查

增加:insert

删除:delete

修改:update

查询:select

1.数据的增加操作

基本语法:

mysql> insert into 数据表名称([字段1,字段2,字段3...]) values (字段1的值,字段2的值,字段3的值...);

特别注意:在SQL语句中,除了数字,其他类型的值,都需要使用引号引起来,否则插入时会报错。

第一步:准备一个数据表

mysql> use db_itheima;
mysql> create table tb_user(
	id int,
	username varchar(20),
	age tinyint unsigned,
	gender enum('男','女','保密'),
	address varchar(255)
) engine=innodb default charset=utf8;

unsigned代表无符号型,只有0到正数。tinyint unsigned无符号型,范围0 ~ 255

enum枚举类型,多选一。只能从给定的值中选择一个

第二步:使用insert语句插入数据

mysql> insert into tb_user values (1,'李向阳',24,'男','广东省广州市');
mysql> insert into tb_user(id,username,age) values (2,'马鹏',23);

2.数据的查询操作

基本语法:

mysql> select * from 数据表名称 [where 查询条件];
mysql> select id,username,age from 数据表名称 [where 查询条件];

案例:查询tb_user表中的所有记录

mysql> select * from tb_user;

案例:查询tb_user表中的id,username以及age字段中对应的数据信息

mysql> select id,username,age from tb_user;

案例:只查询id=2的小伙伴信息

mysql> select * from tb_user where id=2;

案例:查询年龄大于23岁的小伙伴信息

mysql> select * from tb_user where age>23;

3.数据的修改操作

基本语法:

mysql> update 数据表名称 set 字段1=更新后的值,字段2=更新后的值,... where 更新条件;

特别说明:如果在更新数据时,不指定更新条件,则其会把这个数据表的所有记录全部更新一遍。

案例:修改username='马鹏’这条记录,将其性别更新为男,家庭住址更新为广东省深圳市

mysql> update tb_user set gender='男',address='广东省深圳市' where username='马鹏';

案例:今年是2020年,假设到了2021年,现在存储的学员年龄都差1岁,整体进行一次更新

mysql> update tb_user set age=age+1;

4.数据的删除操作

基本语法:

mysql> delete from 数据表名称 [where 删除条件];

案例:删除tb_user表中,id=1的用户信息

mysql> delete from tb_user where id=1;

delete from与truncate清空数据表操作

mysql> delete from 数据表;
或
mysql> truncate 数据表;

delete from与truncate区别在哪里?

  • delete:删除数据记录
    • 数据操作语言(DML)
    • 在事务控制里,DML语句要么commit,要么rollback
    • 删除大量记录速度慢,只删除数据不回收高水位线
    • 可以带条件删除
  • truncate:删除所有数据记录
    • 数据定义语言(DDL)
    • 不在事务控制里,DDL语句执行前会提交前面所有未提交的事务
    • 清里大量数据速度快,回收高水位线(high water mark)
    • 不能带条件删除

四、自动增长(水位线)与主键约束

1.自动增长(对某个字段进行自动编号)

mysql> create table tb_user(
	id int not null auto_increment,
	username varchar(20),
	age tinyint unsigned,
	gender enum('男','女','保密'),
	address varchar(255)
) engine=innodb default charset=utf8;

not null代表非空约束,这个字段只要是插入数据就必须要有值。

2.主键约束(非空、唯一)

create table tb_user(
	id int not null auto_increment,
	username varchar(20),
	age tinyint unsigned,
	gender enum('男','女','保密'),
	address varchar(255),
	primary key(id)
) engine=innodb default charset=utf8;

插入数据库时,id位置直接写NULL即可

mysql> insert into tb_user values (null,'李向阳',24,'男','广东省广州市');
mysql> insert into tb_user values (null,'马鹏',23,'男','广东省深圳市');
mysql> insert into tb_user values (null,'上官婉儿',18,'女','湖南省长沙市');

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值