MySQL基础学习一

MySQL基础学习一1 数据库表操作 1 1 数据库操作 1 创建数据库 createdataba 2 删除数据库 dropdatabase 3 查询数据库 selectdataba

大家好,欢迎来到IT知识分享网。

1、数据库表操作

1.1 数据库操作

# 1.创建数据库 create database test01; # 2.删除数据库 drop database test01; # 3.查询数据库 select databases; # 查询所有数据库 show create database stu; # 查询单个数据库 # 4.查看数据库编码 show variables like 'char%'; 或者 show create database stu; # 表同理,把database 修改为table 或者 mysql> status # 5.修改数据库编码 alter database stu charset='utf8'; 

1.2 数据表操作

表结构查询

desc 表名; 

表创建

create table table_name( filed_name data_type filed_attr, 字段名 数据类型 字段属性 ) 

字段名:可以理解为变量,定义了一个名字,取值时用字段名来获取数据表中的值

数据类型:是对字段名的类型进行定义,常见的数据类型如下

  • 整形

    int

  • 浮点型

    float 、double、decimal(数的最大长度,小数点后位数)

  • 字符类型
    • char

      char的长度是不可变的,最多存255个字节,若超过char定义了字符长度,则对存的字符进行截取,只保留char定义的长度内容,后面的内容会丢弃。

    • varchar

      varchar长度可变,有多少存多少,不会自动填补空格

      varchar对加一个字节的标识,存取速度比char慢。

      char 和 varchar 对比

      • char

        缺点:浪费空间

        优点:存取都很简单,直接按照固定的字符存取数据

      • varchar

        优点:节省空间

        缺点:存取较为麻烦

        ​ 1bytes+RION 1bytes+mark。。。

        ​ 存的时候需要添加报头,取的时候也需要先读报头 之后才能读取真实数据

        建议使用varchar类型

  • 时间类型
    • date

      年月日

    • datetime

      年月日时分秒

    • time

      时分秒

    • year

# 1.创建一个简单的数据表 注意最后一个字段结尾不能加 "," create table student( name varchar(20) not null, age varchar(20) not null, tel int, address varchar(20) ); # 2.使用like 关键字创建表,会将student表结构(包括字段属性)进行复制 mysql> create table student01 like student; mysql> desc student01; # 展示表结构 +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | name | varchar(20) | NO | | NULL | | | age | varchar(20) | NO | | NULL | | | tel | int | YES | | NULL | | | address | varchar(20) | YES | | NULL | | +---------+-------------+------+-----+---------+-------+ # 3.结合 select 复制表 # # (1)复制表,不能复制 主键、外键、自增等 create table 新表名 select * from 旧表名; # (2)对数据范围进行取值并复制 create table 新表名 select * from 旧表名 were id > 10; 

表名称删除

# 1.表删除 drop table 表名 drop table stu; 

表名称修改

alter table 旧表名 rename to 新表名 mysql> alter table job rename to jobs; 或者 rename table 旧表名 to 新表名 mysql> rename table jobs to job01; 

表查询

# 表查询 use 数据库名 # 先进入数据库才可以查数据库中所有的表 show tables; 或者 show columns from job; # 结果与上面一样 # 表结构查询 mysql> desc job; +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | id | int | YES | | NULL | | | position | varchar(64) | NO | | NULL | | | company | varchar(64) | NO | | NULL | | | address | varchar(128) | NO | | NULL | | | salary | varchar(32) | YES | | NULL | | | education | varchar(12) | YES | | NULL | | +-----------+--------------+------+-----+---------+-------+ 

1.3 数据导入导出

sql文件导出

# 注意是在cmd下 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 C:\Users\RION>mysqldump -u root -p bbs > bbs.sql Enter password: 

sql文件导入

# 1.先创建数据库 create database bbs01; # 2.导入文件 source 数据库文件.sql; # 注意文件路径的斜杆,与window文件斜杆相反的 source C:/Users/RION/bbs01.sql; 

Excel文件导入数据库

# 1.创建表job 与Excel中的栏一一对应 create table job( id int, position varchar(64) not null, company varchar(64) not null, address varchar(128) not null, salary varchar(32), education varchar(12) ); # 2.导入数据 load data infile 'Z:/job.csv' into table job fields terminated by ',' # 指定以逗号作为分隔',' lines terminated by '\n' # 指定记录行之间的分隔符为换行符'\n' ignore 1 rows; # 忽略csv中的第一行的表头 # 查询数据 mysql> select * from job; 

如果出现报错情况

​ !如果出现如下报错,因为mysql默认限制导入与导出的目录权限,

​ ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option so it cannot execute this statement

  • 打开 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini 注意ProgramData可能需要手动调出来,系统默认是隐藏的。
  • 修改配置文件my.ini 中修改为secure-file-priv=‘’
  • 重启mysql服务,cmd 中输入service.msc 找到mysql服务右键重启
  • 重启后会可能会出现连接失败,这时把my.ini另存为ANSI格式,记得另存为之前备份。
  • 以管理员进入powershell,输入net start mysql80(这里的mysql是你的服务名称,我的是mysql80、有的是mysql57等),等待即可成功

2、数据的增删改查

2.1 数据增加

# 表名后面不加字段则默认表中所有字段插入值,注意值与字段类型一一对应 # 1.我们先创建一个数据表 create table stuinfo( id int not null , name varchar(24) not null, age int not null, birthday date not null, gender enum('man','female'), # 枚举,多个选一个 hobby set('book','run','music','basketball','study') default 'study' # 集合,多选多 ); mysql> desc stuinfo; 选多 +----------+------------------------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+------------------------------------------------+------+-----+---------+-------+ | id | int | NO | | NULL | | | name | varchar(24) | NO | | NULL | | | age | int | NO | | NULL | | | birthday | date | NO | | NULL | | | gender | enum('man','female') | YES | | NULL | | | hobby | set('book','run','music','basketball','study') | YES | | study | | +----------+------------------------------------------------+------+-----+---------+-------+ # 2.插入数据,可以括号后加‘,’继续加入数据,这样可以在批量插入时会快很多 insert into stuinfo values( 1, 'tom', 28, '1992-01-01', 'man', 'study,music' ); mysql> select * from stuinfo; +----+-------+-----+------------+--------+----------------------+ | id | name | age | birthday | gender | hobby | +----+-------+-----+------------+--------+----------------------+ | 1 | jack | 18 | 1999-01-01 | man | book,run,study | | 2 | rion | 20 | 2000-01-01 | man | book,run,music,study | | 3 | alice | 19 | 2001-01-01 | female | music,study | +----+-------+-----+------------+--------+----------------------+ 

2.2 数据删除

# 删除一条数据 mysql> delete from stuinfo where id=2; # 表数据清空 -- 方式1 mysql> delete from stuinfo; # 表数据清空 -- 方式2 truncate stuinfo; -- truncate与delete的去区别 -- # delete 1.会清空表中的数据,但是自增变量的记忆不会清楚 2.若数据再次插入时,则不会从新开始,而是从上次的自增位置开始加入 # truncate 1.会清空表中的数据,自增变量的记忆也会清空 2.原理是truncate会删除这张表,同时新建一张新的表。 

2.3 数据修改

# 数据修改 # where 是条件语句,该语句表示把id为1的age字段修改为25 mysql> update stuinfo set age = 25 where id =1; # 注意 # mysql> update stuinfo set age = 45; # 该sql语句会把表中所有的age字段都会修改为45 

2.4 数据查询

# 数据查询 mysql> select * from stuinfo; # 指定字段数据查询 mysql> select name,age,gender from stuinfo; +------+-----+--------+ | name | age | gender | +------+-----+--------+ | tom | 25 | man | | jim | 45 | man | +------+-----+--------+ 2 rows in set (0.00 sec) 

3、字段的增删改查

表字段增加

# 在表后面添加tel字段 mysql> alter table stuinfo add tel int; # 在表中age之后添加address字段 mysql> alter table stuinfo add address varchar(120) after age; # 在表中age之后添加address字段并设置默认值为60.00 mysql> alter table stuinfo add grade float default 60.00 after age; 

表字段修改

# 修改tel字段为phone -- 使用change关键字 alter table stuinfo change tel phone int; # 修改address字段类型 -- 使用 modify alter table stuinfo modify address char(120); 

表字段删除

mysql> alter table stuinfo drop phone; 

表字段查询

desc stuinfo; show col 

内容可能存在错误,欢迎大家指出错误。谢谢^_^

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118654.html

(0)
上一篇 2025-11-11 15:45
下一篇 2025-11-11 16:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信