mysql 建表语法记录

本文详细介绍了MySQL的建表语法,包括数据类型如整数、浮点数、字符串、日期时间等,以及创建、修改、删除数据库和表的方法。还探讨了完整性约束,如主键、自增、非空、默认值和唯一性约束。此外,还讲解了如何添加、修改和删除表字段,以及插入、更新和删除记录的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mysql -h127.0.0.1  -P3306 -uroot -proot      连接数据库

 

//配置musql my.ini 下的字符集编码

[mysqld]

character-set-server=utf8

[mysql]

default-character-set=utf8

 

 

Mysql  //命令行

\s   //查看参数信息

\q   //退出

\T G:\phpdev\mysqlDemo\mysql.txt   //保存sql语句

 

 

 

 

create database mybase; //创建数据库

Drop  database mybase;  //删除数据库

//完整设置数据库语法

Create database if not exists mybase default character set =utf;   

use mybase;       //打开数据库

select version();    //查看数据库版本

select user();     //查看用户

Select now();     //查看时间

Select database();  //查看当前打开的数据库

Show warning;     //查看上一步操作产生的警告信息

show databases;   //查看所有数据库

show  create database mybase;  //查看数句库信息

Show tables   //查看数据表

desc tablename;                    //查看表结构

Show columns from tablename;   //查看表结构

Alter database mybase default character set utf8;//修改数据库编码

Show engines;  //查看存储引擎

 

 

Mysql 数据类型   help int//查看帮助手册

 

整数

Tinyint   有符号 -128~127   无符号 0~255

Smallint  有符号 -32768~32767 无符号 0~65535

Medlumint 有符号 -8388608 ~ 88388607   无符号0~16777215

Int  BIGING

BOOL  Tinyint 表示

 

 

浮点数

Float    4个字节

Double   4个字节

Decimal  8个字节

 

字符串类型

Char(m)        m个字节 0<=m<=255  //固定长度  查询速度快

Varchar(m)     0<=m<=65535         //变长    查询慢   空间小

Tinttext       28次方

Text            216次方

Medlumtext     224次方

Longtext       232次方  

Enum(value,value,...) 枚举值得个数 65535

Set(value,value,...)

 

时期时间

Time   //存储时间  -838:59 ~ 838:59:59

Data   //存储日期  1000-01-01~9999-12-31

Datatime //时间加日期

Timestamp //时间戳

Year       //年份 1901-2155

 

二进制类型

 

 

 

 

 

 

 

 

 

 

 

 

 

创建表

#创建数据表

create table if not exists `user`(

id smallint,

username varchar(20),

age tinyint,

sex enum('男','女','保密'),

email varchar(50),

addr varchar(200),

birth year,

salary float(8,2),

tel int,

married tinyint(1) comment '0代表没有结婚,1代表结婚 ' #comment 代表注释

)ENGINE=innodb charset=UTF8;

 

 

create table test1(

num1 tinyint unsigned,  #无符号

num2 mediumint unsigned

);

 

创建表的完整性约束

primary key     主键  不为空  唯一  //类似于身份证号

 

create table `user1`(

id INT primary key,

username varchar(20)

);

 

create table `user1`(

id INT key,             //key == primary key

username varchar(20)

);

 

create table if not exists `user2`(

id int,

username varchar(20),

card char(18),

primary key(id,card)   #多个主键  一个值重复没有关系   同时重复不行

);

 

 

Auto_increment 自增长约束   //只能有一个   是自增长一定是主键   但是主键不一定是自增长   

create table if not exists user5(

id smallint key auto_increment,

username varchar(20)

);

 

create table if not exists user5(

id smallint key auto_increment,

username varchar(20)

)auto_increment=100;    #100开始

 

Alter table user5 auto_increment=500;  //设置表的自动增长初始的值

 

Not null 非空约束

create table if not exists user7(

id INT unsigned key auto_increment,

username varchar(20) not null,

password char(32) not null,

age tinyint unsigned

);

 

 

Default    默认值的约束

create table if not exists user8(

id INT unsigned key auto_increment,

username varchar(20) not null,

password char(32) not null,

age tinyint unsigned default 18,

addr varchar(50) not null default '南京',

sex enum('男','女','保密') not null default '男'

);

 

Unique key 唯一性约束   可以有多个唯一

create table if not exists user9(

id tinyint unsigned primary key auto_increment,

username varchar(20) not null unique,

card  char(18) unique

);

 

 

修改表名字

Alter table user10 rename to user11;

Alter table user11 rename as user10;

Alter table user10 rename user11;

 

Rename user10 to user10;

 

 

添加表字段

ALTER TABLE user10 ADD card CHAR(18);

ALTER TABLE user10 ADD tes1 VARCHAR(100) NOT NULL UNIQUE;

 

一次添加多个表字段

alter table user1

add test4 INT not null default 123 after card,

add test5 FLOAT(6,2) first,

add test6 set('a','b','c');

 

//添加和删除在一起

alter table user1 add test int unsigned not null default 10 after id,

drop card;

 

#修改表字段 修改不了主键    

alter table user1 modify username varchar(30) default 'zyc';

 

#添加主键

alter table test12 add primary key(id);

 

#添加复合主键

alter table test13 add primary key(id,card);

#删除主键

alter table test12 drop primary key;

 

#添加唯一

alter table test14 add unique(test1);

alter table test14 add unique(test2,test4);

 

#删除唯一

alter table test14 drop index test1;

 

 

#插入表信息

insert `user` values(1,'zyc','zyc','1209360331@qq.com','22');

select * from `user`;

insert `user`(username,`password`) values('a','aaaaaaaa');

 

#多行插入

insert `user` values(3,'zyc2','zyc2','12209360331@qq.com','24'),

(4,'zyc1','zyc1','11209360331@qq.com','32');

 

create table user12 (

id tinyint unsigned auto_increment key,

username varchar(20) not null unique

);

 

#插入查询出来的信息

insert  user12  (select id, username from `user`);

 

 

更新记录

update user11 set salary=400;

update user11 set salary=salary+10 where id=1;

 

 

删除记录

delete from user11 where username='xtm';

 

清空表所有数据

truncate table user11

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值