MySQL数据库(基础篇)

首先说明,MySQL数据库和SQL Server数据库是有区别的,至于有什么区别,此处无解,请自行百度。

关系型数据库
MySQL 为关系型数据库, 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:
这里写图片描述
表头(header): 每一列的名称;
列(row): 具有相同数据类型的数据的集合;
行(col): 每一行用来描述某个人/物的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 表中用来识别某个特定的人/物的方法, 键的值在当前列中具有唯一性。

MySql管理

  1. 登入到数据库(例如,用户名是root,密码是123456):mysql -uroot -p123456
  2. 显示数据库列表:show databases;
  3. 创建一个数据库(数据库名为y1):create database y1;
  4. 删除数据库:drop database y1;
  5. 使用mysql(例如,数据库名为mysql)数据库:use mysql;
  6. 退出:exit
    这里写图片描述
    我没看到Database changed就代表选择了某个数据库。

数据库中对表的操作

  1. 显示指定数据库的所有表(比如,使用my_db数据库):show tables;
  2. 创建一张表(表名为t1):create table t1(id int, name varchar(30), passwd varchar(30));
  3. 查看表(例如,表名为table)的结构:desc t1;
  4. 查询语句:select * from t1;
  5. 修改表名(t1改为t2):rename table t1 to t2;
  6. 删除表:drop table t2;
    这里写图片描述

MySQL 数据类型
主要有三类:
1、数值型:int 、 float
2、字符串:char 、varchar 、 text 、 longtext
3、日期:data 、 time 、 datetime

1)int(3), 这里的3与长度无关,而是表示不够3位时前面补零,默认看不见。float型的数字比如1.23,注意要表示成1.23f,不然编译器默认是double型。
2)char和varchar:
1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。

2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,如果超过4个字节,将超出部分截掉。varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。
3.char类型的字符串检索速度要比varchar类型的快。但varchar比char更省空间。

3)日期
date | 日期 ‘2018-3-22’
time | 时间 ‘22:27:56’
datetime | 日期时间 ‘2018-3-22 22:27:56’

数据类型的属性
这里写图片描述

数据插入
insert into t1 values(111, “huazai”, “123456”); 或
create table t1(id int, name varchar(30), passwd varchar(30));

数据查询
普通查询:查询表中所有的内容: select * from students;
按特定条件查询:select 列名称 from 表名称 where 条件;
查询年龄在21岁以上的所有人信息: select * from students where age > 21;
查询id小于5且年龄大于20的所有人信息: select * from students where id<5 and age>20;

数据更新:update 表名称 set 列名称=新值 where 更新条件;
将id为5的手机号改为默认的"-": update students set tel=default where id=5;
将所有人的年龄增加1: update students set age=age+1;

数据删除:delete from 表名称 where 删除条件;
删除id为2的行: delete from students where id=2;
删除表中的所有数据: delete from students;

数据库表的修改
1、增加列:alter table 表名 add 列名 列数据类型 [after 插入位置];
栗子1:在表的最后追加列 address: alter table students add address char(60);
栗子2:在名为 age 的列后插入列 birthday: alter table students add birthday date after age;

2、修改列:alter table 表名 change 列名称 列新名称 新数据类型;
栗子1:将表 tel 列改名为 telphone: alter table students change tel telphone char(13) default “-”;
栗子2:将 name 列的数据类型改为 char(16): alter table students change name name char(16) not null;
3、删除列:alter table 表名 drop 列名称;
栗子:删除 birthday 列: alter table students drop birthday;

下面看代码:
这里写图片描述
这里写图片描述
这里的id 是自增且唯一的主索引值,只增是什么意思呢,就是说在数据插入的时候,可以省略id的值,手动加入会覆盖掉默认值,无手动输入则默认在上次的数值自增。
这里写图片描述

在此基础上,我们增加一列年龄age:
这里写图片描述
我们结合使用了增加列和数据类型属性,这里的意思是age这一列不为空,默认为18岁。
一般情况下,not null 与default结合使用。

我们可以查看一下表的结构:
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值