0


MySQL(一)——基础命令

文章目录

MySQL基础命令

本数据都在DataGrip软件上操作。

MySQL的特点有:

(1)MySQL是开源的;

(2)MySQL支持大量数据处理,可以处理上千万条的数据记录;

(3)MySQL使用标准的SQL语言形式;

(4)MySQL可以安装在不同的操作系统,并且提供了多种编程语言的操作接口,包括Python、Java、PHP、C++、Ruby等;

(5)支持多种存储引擎。

SQL语句的分类

数据定义语言: DDL (Data Definition Language):用来定义数据库、数据表、列等。创建create、修改alter、删除drop等。
数据操作语言: DML (Data Manipulation Language):用来更新数据表。插入数据insert、更新数据update、删除数据delete等。
数据查询语言: DQL (Data Query Language):用于查询数据。查询数据select、条件where等。
数据控制语言: DCL (Data Control Language):用来定义数据库的访问权限和安全级别,及创建用户。

在MySQL数据库中,常用的字段类型如下:[数据类型]

(1)整数:int;

(2)小数:double,注意:在编程开发中,一般把小数称为浮点数;

(3)字符串:varchar;

(4)时间日期:date、datetime。

【DDL】数据库操作

创建数据库

create database [其他] 数据库名 [设置编码格式];

==说明:==使用

[ ]

表示的内容表示可选项。

例:

(1)创建一个

班级

user1数据库,且使用默认编码;

(2)创建一个

班级

user2数据库,charset设置编码为utf8。

(3)若再使用相同命令创建一个已有的数据库:

班级

user1。

# (1)创建一个`班级`user1`数据库,且使用默认编码;
create database user1;
# (2)创建一个`班级`user2`数据库,charset设置编码为utf8。
create database user2 charset utf8;
# (3)若再使用相同命令创建一个已有的数据库:班级`user1`。
create database if not exists user1 charset utf8;

查看数据库

# 查看有哪些数据库
show databases;
# 查看数据库的创建语句
show create database 数据库名;

删除数据库

drop database 数据库名称;

切换数据库

use 数据库名;

【DDL】数据表操作

创建数据表

create table 表名(
    字段名1 数据类型(长度) [约束],
    字段名2 数据类型(长度) [约束],
    字段名3 数据类型(长度) [约束],
    ...
);

说明:

(1)常见类型有int、double、varchar(x);

(2)primary key表示主键,使用主键修饰的字段必须保证唯一且非空;

(3)auto_increment表示自动增长,通常为int型的值才能设置为自动增长。

特别注意:在创建数据表前,要先使用数据库。

例:

# (1)创建一个数据库`班级`user1,并在该库中完成创建数据表的操作;
create database if not exists user1 charset utf8;
# (2)使用数据库;
use user1;
# (3)新建一个用户表user,字段有编号、用户名、昵称;
create table user(
    id int primary key auto_increment, #添加主键且自增长
    username varchar(20),
    nickname varchar(20)
);

查看数据表

# 查看有哪些表
show tables;
# 查看数据表的创建语句
show create table 表名;
# 查看表结构
desc 表名;

删除数据表

drop table 表名;

修改数据表

(1)添加一列 :add
alter table 表名 add 字段名 类型(长度) [first|after 其他字段名称];
# first:把新添加字段放在第一位
# after 其他字段名称:把新添加字段放在指定字段的后面

例:

(1)给用户表添加一列信息展示information字段,长度为20;

(2)在用户表的最开始处,添加一列最初名称first_name,该怎么做呢?

(3)在用户表的信息字段后,添加一列年龄age字段,该怎么做?

# 1.创建一个数据库`班级`user1,并在该库中完成创建数据表的操作;
create database if not exists user1 charset utf8;
# 2.使用数据库;
use user1;
# 3.新建一个用户表user,字段有编号、用户名、昵称;
create table user(
    id int primary key auto_increment, #添加主键且自增长
    username varchar(20),
    nickname varchar(20)
);
# 4.添加一列
alter table user add information varchar(20);
desc user;
# 5.开始处添加一列
alter table user add first_name varchar(20) first;
# 6.某个字段后添加一列
alter table user add age int after information;
(2)修改列类型:modify
alter table 表名 modify 要修改的字段名 类型(长度);
alter table 表名 modify 要修改的字段名 类型(长度) [约束];   # 不为空

说明:非空约束可写成

not null

,表示不能为空值,必须进行设定数据。

例:

(1)给用户表的information 字段类型修改为char,长度修改为10;

(2)将用户名字段修改长度为16,且添加不为空约束。

# 修改信息字段 char(10)
alter table user modify information char(10);
# 修改姓名字段 16 not null
alter table user modify username varchar(16) not null;
(3)修改列名:change
alter table 表名 change 旧列名 新列名 类型(长度) [约束];

例:

(1)把用户表的用户名修改为name,字符串类型、长度为18;

(2)把用户表的性别字段列名修改为sex,类型修改为varchar,长度为100。

# 修改用户名为name varchar(18)
alter table user change username name varchar(18);
# 修改信息为info   varchar(100)
alter table user change information info varchar(100);
(4)删除一列:drop
alter table 表名 drop 列名;

例:

(1)删除用户表中的年龄这一列;

(2)使用命令查看表结构。

# 删除一列
alter table user drop age;
#查看表结构
desc user;
(5)修改表名:rename
rename table 表名 to 新表名;

例:

(1)把用户表的表名更改为table_user;

# 修改表名
rename table user to table_user;

【DML】数据操作

插入数据

#插入一条数据
insert into 表名[(字段名1,字段名2,字段名3,...)] values(值1,值2,值3,...);

# 插入多条数据
insert into 表名[(字段名1,字段名2,字段名3,...)] values (值1,值2,值3,...),(值1,值2,值3,...),...;

例:

(1)创建一个shopping库,并在该库下新建一个用户表user;

(2)用户表的字段信息有编号、人物名、性别、住址等;[不添加任何约束条件]

(3)使用插入数据的语法分别插入一条数据;

(4)思考1:给所有字段名一次性插入2条数据信息,该怎么做?

(5)思考2:给用户表一次性插入仅包含人物名、年龄、性别字段的3条数据,该怎么做?

(6)若发现在性别字段后,还缺少了年龄字段,该怎么处理呢?

#####################插入数据###############################
# 1.新建库、使用库
create database if not exists shopping charset utf8;
use shopping;
show tables;
# 2.创建表
create table if not exists user(
    id int,
    name varchar(20),
    sex varchar(10),
    address varchar(255)
);
show tables;
# 3.不加()与加()依次插入数据
insert into user values(1,'李自豪','男','山东青岛');
insert into user(id,name,sex,address) values(2,'吕春伟','男','山东济南');

# 4.一次性插入多条数据
insert into user values(3,'周媛','女','山西太原'),(4,'周钰哲','女','广东湛江');
insert into user(id,name,sex,address) values(5,'周媛2','女','山西太原'),(6,'周钰哲2','女','广东湛江');

# 5.一次插入仅包含部分字段的数据
insert into user(name,sex,address) values('刘志远','男','河南新乡'),('刘志远2','男','河南新乡'),('刘志远3','男','河南新乡');

# 6.缺少年龄字段,该怎么修改?
alter table user add age int after sex;

更改数据

#更改数据表内所有的数据
update 表名 set 字段名1=值1, 字段名2=值2, 字段名3=值3,...;

#按条件修改数据
update 表名 set 字段名1=值1, 字段名2=值2, 字段名3=值3,…… where 条件;

例:

(1)将用户表内所有用户性别一次性设置为男;

(2)将用户表内所有用户的性别修改为女、年龄修改为18;

(3)将用户表内编号为2的用户性别设置为男;

(4)将用户表内编号为3的用户年龄更新为22,且住址更新为河南省郑州市;

(5)思考:去年存储的用户数据到今年了,那么存储在user数据表里的用户年龄都要增加1岁,该怎么处理呢?

######################更新数据################################
# 使用库
use shopping;
show tables;
# 1
update user set sex='男';
# 2
update user set sex='女',age=18;
# 3
update user set sex='男' where id=2;
# 4
update user set age=22,address='河南省郑州市' where id=3;
# 5
update user set age=age+1;

删除数据

#删除所有的数据
delete from 表名;

#按条件删除数据
delete from 表名 where 条件;

例:

(1)在数据库中shopping创建一个用户表user2,表字段有编号、用户名、密码,再增加3条数据;

(2)删除表内编号为1的这条数据,再删除用户名为Andy的这条数据;

(3)使用命令删除表内所有数据,观察效果。

###################删除数据########################
# 使用库
use shopping;
# 创建表
create table if not exists user2(
    id int,
    username varchar(20),
    password varchar(20)
);
show tables;
# 新增数据
insert into user2(id,username,password) values (1,'Andy','123456'),(2,'Jerry','666777'),(3,'Marry','888999');

# 删除一条数据
delete from user2 where id=1;
delete from user2 where username='Andy';
# 清空所有数据
delete from user2; 
# 或用truncate清空数据
truncate table user2; 

问题: 思考delete和truncate删除数据的区别?

delete是逐条的删除数据,删除数据后仍然占用空间,且下次插入数据时,不是从1开始;而truncate是直接删除整个表的内容

标签: mysql 数据库

本文转载自: https://blog.csdn.net/weixin_58305115/article/details/140446796
版权归原作者 木鬼与槐 所有, 如有侵权,请联系我们删除。

“MySQL(一)——基础命令”的评论:

还没有评论