MySQL部分基础知识

MySQL

登录
mysql -u root -p
Enter password:输入密码
展示数据库
show databases;
创建数据库
create database database1 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
                (数据库名)
进入数据库
use database1;
    (数据库名)
创建数据表
create table tb1(
     id int,
     name varchar(16),
     age int
     )default charset=utf8;
create table tb1(
     id int,
     name varchar(16) not null, --不允许为空
     age int null               --允许为空(默认)
     )default charset=utf8;
create table tb1(
     id int,
     name varchar(16),
     age int default 3          --默认值为3
     )default charset=utf8;
create table tb1(
     id int primary key,        --主键(不允许为空,不允许重复)
     name varchar(16),
     age int
     )default charset=utf8;

主键一般用于表示当前的数据编号(类似于人的身份证)

create table tb1(
     id int auto_increment primary key, --内部维护,自增
     name varchar(16),
     age int
     )default charset=utf8;

一般情况下,我们再创建表时都会这样来写:【标准】

create table tb1(
     id int not null auto_increment primary key, 
     name varchar(16),
     age int
     )default charset=utf8;
展示数据表
show tables;
desc tb1(表名称);
删除表
drop table 表名称;

常见数据类型:

  • tinyint
有符号,取值范围:-128 ~ 127 (有正有负)【默认】
无符号,取值范围:0 ~ 255 (只有正)
create table tb2(
     id int not null auto_increment primary key, 
     age tinyint          --有符号
     )default charset=utf8;
create table tb3(
     id int not null auto_increment primary key, 
     age tinyint unsigned  --无符号
     )default charset=utf8;
  • int
int             表示有符号,取值范围:-2147483648 ~ 2147483647
int unsigned    表示无符号,取值范围:0 ~ 4294967295
  • bigint
有符号,取值范围:-9223372036854775808 ~ 9223372036854775807
无符号,取值范围:0 ~ 1844674407309551615

练习题:

create table tb2(
    id bigint not null auto_increment primary key, 
    salary int, 
    age tinyint          
)default charset=utf8;

#插入数据
insert into tb2(salary,age) values(10000,18);
insert into tb2(salary,age) values(20000,28);
insert into tb2(salary,age) values(30000,38),(40000,48);

#查看数据
select * from tb2;

#效果:
mysql> select * from tb2;
+----+--------+------+
| id | salary | age  |
+----+--------+------+
|  1 |  10000 |   18 |
|  2 |  20000 |   28 |
|  3 |  30000 |   38 |
|  4 |  40000 |   48 |
+----+--------+------+
4 rows in set (0.00 sec)
  • float

  • double

  • decimal

#准确的小数值,m是数字的总个数(负号不算),d是小数点后的个数。m最大值为65,d的最大值为30。
create table tb3(
    id bigint not null auto_increment primary key, 
    salary decimal(8,2)         #decimal(m,d)
)default charset=utf8;

insert into tb3(salary) values(1.28);
insert into tb3(salary) values(1231.285);   #会四舍五入
insert into tb3(salary) values(12343.282);
insert into tb3(salary) values(1234567.28); #会报错(超过8位) ERROR 1264 (22003): Out of range value for column 'salary' at row 1

#结果:
mysql> select * from tb3;
+----+----------+
| id | salary   |
+----+----------+
|  1 |     1.28 |
|  2 |  1231.29 |
|  3 | 12343.28 |
+----+----------+
3 rows in set (0.01 sec)
  • char(m),速度快

    定长字符串, m代表字符串长度,最多可容纳255个字符。
    
    char(11),固定用11个字符串进行存储,即使没有11个字符,也按照11个字符进行存储。
    
    create table tb4(
        id bigint not null auto_increment primary key, 
        mobile char(11)
    )default charset=utf8;
    
    insert into tb3(mobile) values("123");
    insert into tb3(mobile) values("123123456789"); #超出范围报错
    
  • varchar(m),节省空间

    变长字符串。m代表字符长度。  最大65535字节
    
    varchar(11),真实数据有多长就按照多长存储。
    
    create table tb5(
        id bigint not null auto_increment primary key, 
        mobile varchar(11)
    )default charset=utf8;
    
    insert into tb3(mobile) values("123");
    insert into tb3(mobile) values("123123456789"); #超出范围报错
    
  • text

    text数据类型用于保存大字符串,可以最多用到65535(2**16-1)个字符。
    一般情况下,长文本会用text类型。例如:文章、新闻等。
    
    create table tb6(
        id bigint not null auto_increment primary key, 
        title varchar(128),
        content text
    )default charset=utf8;
    
  • mediumtext

    最多用到(2**24-1)个字符。
    
  • longtext

    最多用到(2**32-1)个字符。
    
  • datetime(年月日 时分秒)

    YYYY-MM-DD HH:MM:SS   (2022-06-25 18:02:15)
    
  • date

    YYYY-MM-DD (2022-06-25)
    
练习题:用户表
create table tb7(
    id bigint not null auto_increment primary key, 
    name varchar(64),
    password varchar(64),
    email varchar(32),
    age tinyint(5),
    salary decimal(10,2),
    ctime datetime
)default charset=utf8;

insert into tb7(name,password,email,age,salary,ctime) values("ordeal","123456","www.123456@163.com","18","11111.11","2022-6-25 18:18:18");

#结果:
mysql> select*from tb7;
+----+--------+----------+--------------------+------+----------+---------------------+
| id | name   | password | email              | age  | salary   | ctime               |
+----+--------+----------+--------------------+------+----------+---------------------+
|  1 | ordeal | 123456   | www.123456@163.com |   18 | 11111.11 | 2022-06-25 18:18:18 |
+----+--------+----------+--------------------+------+----------+---------------------+
1 row in set (0.01 sec)

其他数据类型,官方文档:

https://dev.mysql.com/doc/refman/8.0/en/data-types.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值