MySQL基本操作

MySQL基本操作

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于Oracle旗下产品

列:字段;行:记录

一、基本类型(常用)

数字

类型字节大小有符号范围(Signed)无符号范围(Unsigned)
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32768 ~ 327670 ~ 65535
MEDIUMINT3-8388608 ~ 83886070 ~ 16777215
INT/INTEGER4-2147483648 ~21474836470 ~ 4294967295
BIGINT8-9223372036854775808 ~ 92233720368547758070 ~ 18446744073709551615

字符串

类型字节大小示例
CHAR0-255类型:char(3) 输入 ‘ab’, 实际存储为’ab ‘, 输入’abcd’ 实际存储为 ‘abc’
VARCHAR0-255类型:varchar(3) 输 ‘ab’,实际存储为’ab’, 输入’abcd’,实际存储为’abc’
TEXT0-65535大文本

日期时间类型

类型字节大小示例
DATE4‘2020-01-01’
TIME3‘12:29:59’
DATETIME8‘2020-01-01 12:29:59’
YEAR1‘2017’
TIMESTAMP4‘1970-01-01 00:00:01’ UTC ~ ‘2038-01-01 00:00:01’ UTC
二、约束
  • 主键primary key:物理上存储的顺序
  • 非空not null:此字段不允许填写空值
  • 惟一unique:此字段的值不允许重复
  • 默认default:当不填写此值时会使用默认值,如果填写时以填写为准
  • 外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
  • 说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加、修改、删除、查询)时,都会降低数据库的性能,所以不推荐使用,那么数据的有效性怎么保证呢?答:可以在逻辑层进行控制
三、数据库的操作

注意事项:1.不区分大小写,2.sql语句以分号结尾

– 链接数据库
mysql -uusername -ppassword

– 退出数据库
exit; quit; ctrl+d/c

– 显示当前所有数据库信息
show databases;

– 显示当前数据库的时间
select now();

– 显示当前数据库版本
select version();

– 创建数据库
– create database 数据库名 charset=utf8
create database python08 charset=utf8;

– 查看创建数据库的语句
show create database python08

– 删除数据库
– drop database 数据库名
drop database python08; # 如果数据库名中有“-”等符号,则 ·数据库名·
确认数据库是否删除:show databases;

四、创建数据表的操作

– 查看当前使用的数据库
select database();

– 使用数据库:use 数据库的名字;
use python08;

– 显示当前数据库中所有表
show tables;

– 创建表

create table xxxxx(id int, name varchar(30));
create table yyyyy(id int primary key not null auto_increment, name varchar(30));
create table zzzzz(
			id int primary key not null auto_increment,
			name varchar(30)

);

– 查看表结构
– desc 数据表;
desc xxxxx;

– 创建students表(int, name, age, high, gender, cls_id)

create table students(
	id int unsigned not null auto_increment primary key,
	name varchar(30),
	age tinyint unsigned default 0,
	high decimal(5,2),
	gender enum("男", "女", "中性", "保密") default "保密",
	cls_id int unsigned
);

确认数据表创建完成:desc students;

– 向表中插入数据
insert into students values(0, "老王", 18, 188.88, "男", 0);

– 查看表中的数据
select * from students;

– 创建classes表(id, name)

create table classes(
	id int unsigned not null auto_increment primary key,
	name varchar(30)
);

– 向表中插入数据
insert into classes values(0, "python08");

– 查看表中的数据
select * from classes;

五、修改数据表的操作

– 修改表,添加字段
– alter table 表名 add 列名 类型及约束;
alter table students add birthday datetime;

– 修改表,修改字段,不重命名版
– alter table 表名 modify 列名 类型及约束;
alter table students modify birthday date;
alter table firm modify phone unique=fause;

– 修改表,修改字段,重命名版
– alter table 表名 change 原名 新名 类型及约束;
alter table students change birthday birth date default "1995-08-09";

– 修改表,删除字段
– alter table 表名 drop 列名;
-- alter table students drop high;

– 删除表
– drop table 数据表;
drop table xxxxx;

六、数据的增删改查
  • – 增加
    • – 全列插入

      – insert info 表名 values(…);
      – 主键字段可以用 0 null default 来占位
      – 向 classes 表中插入 一个班级
      insert info classes values(0, "菜鸟班");

      – 向 students 表中插入一个学生的信息
      insert into students values(0, "貂蝉", 20, "女", 1, "1997-01-01");
      insert into students values(null, "貂蝉", 20, "女", 1, "1997-01-01");
      insert into students values(default, "貂蝉", 20, "女", 1, "1997-01-01");

    • – 部分插入

    – insert into 表名 (列1,…) values (值1,…);

    insert into students (name, gender) values ("小乔", 2);

    • –多行插入

      insert into students (name, gender) values ("小乔", 2),("大乔", 3);

      insert into students values(default, "西施", 20, "女", 1, "1996-01-01"), (default, "王昭君", 19, "女", 1, "1997-01-01");

  • – 修改

    – update 表名 set 列1=值1, 列2=值2… where 条件;

    update students set gender=1; --全部都改

    update students set gender=1 where name="xxx"; --name=xxx的进行修改

    update students set age=22, gender=1 where id=3; --id=3 的进行修改

  • – 查询
    • – 查询所有列

      – select * from 表名;

      select * from students;

    • – 按条件查询
      select * from students where name="王昭君"; --查询name为王昭君的信息
      select * from students where id>3; --查询id>3的数据记录

    • – 查询指定字段

      – select 列1, 列2,… from 表名;
      select name, gender from students;

      – 可以使用 as 为列或表指定别名
      – select 字段 as 别名, 字段 as 别名 from 数据表 where …;
      select name as 姓名, gender as 性别 from students;

      – 调整字段显示的顺序
      select id as 序号, gender as 性别, name as 姓名 from students;

  • – 删除
    • – 物理删除

      –delete from 表名 where 条件;

      delete from students; --整个数据表中的所有数据被删除

      delete from students where name="王昭君"; --从数据表中删除“王昭君”的记录

    • – 逻辑删除

      – 用一个字段来表示这条信息是否已经不能用了

      – 给 students 表添加一个 is_delete 字段,bit 类型

      alter table students add is_delete bit default 0;

    • – 修改一条记录来验证

      -- update students set is_delete=1 where id=6;

      select * from students where id=6;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值