首页 / MYSQL / mysql的一些基础操作
mysql的一些基础操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql的一些基础操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5158字,纯文字阅读大概需要8分钟。
内容图文
![mysql的一些基础操作](/upload/InfoBanner/zyjiaocheng/908/f3d743cc76524d2f95add70f7ec602fe.jpg)
数据库的操作
1.数据库:
增加:
指令:create database 数据库名称;
列子:create database db1:;
删:
指令:drop database 数据库名称;
列子:drop database db1;
修改:
没有专门的修改指令 update 删了重新建
查询:
指令:show databases;
使用 :
指令:use 数据库名;
列子:use db1
二,数据表:
新建:
use db1;
最终的格式:
create table 表名(
列1 列属性 [是否为null 默认值],
列2 列属性 [是否为null 默认值]
列n 列属性 [是否为null 默认值]
)engine = 存储引擎 charset = 字符集
最终的例子:
create table t4 (
id int auto_increment primary key,
name char(32) not null default '',
pwd char(32) not null default ''
)engine=Innodb charset=utf8;
引擎:Innodb和MyIsam
默认是Innodb
auto_increment:自增
primary key : 主键索引 (作用: 加快查找的速度)
not null : 不能为空
default : 默认值
insert into t3 (name,pwd) values ('hello',‘qwyeq’);
列类型:
a. 数值型
create table t4 (
id unsigned mediumint auto_increment primary key,
name char(32) not null default '',
pwd char(32) not null default ''
)engine=Innodb charset=utf8;
tinyint :
范围:
有符号: -128到127
无符号: 0 到 255 unsigned
smallint
范围:
有符号: -32768到32767
无符号: 0 到 65535 unsigned
mediumint
范围:
有符号: -8388608到8388607
无符号: 0 到 16777215 unsigned
int
bigint
区别:
a. 取值范围不一样, 根据自己公司的业务来去选择
b. 无符号和有符号的意思
float(M,D) 浮点型
decimal(M,D) 定点型 比float更加的精准
例如: 3.1415151519868789789
float: 3.141515000000000000
decimal : 3.1415151519868789789
126.35
M:小数总共多少位 decimal(5, )
D:小数点后面几位 decimal(5, 2)
使用场景:
比如 说存 salary 工资 : 6000.23 decimal(,2)
b. 字符串类型
char : 定长 char(32) 这一列的值就是32 优点: 速度快 缺点: 浪费
varchar : 变长 varchar(32) 优点: 不浪费, 节省空间 缺点: 速度慢
根据自己公司的业务来去选择:
create table userinfo (
id unsigned mediumint auto_increment primary key,
name varchar(128) not null default '',
pwd char(32) not null default '',
create_time datetime not null default '1970-01-01 00:00:00'
)engine=Innodb charset=utf8;
一般情况下, 如果没有100%的把握, 都是用varchar()
text: 文本 范围比较大, 如果存储大量字符的话, 可以使用这个字段
c. 时间类型
date 2019-6-12
推荐使用datetime
删
指令:
drop table 表名;
连带着将数据表中的所有数据都会删掉
ps: 工作中, 线上数据库, 这个命令根本不会让你用到
实例:
drop table t1;
查询
show tables;
desc 表名; : 查看表的结构
show create table 表名 : 查看表的创建过程
关于主键自增: (不是重点)
show session variables like 'auto_inc%';
set session auto_increment_increment = 2;
show global variables like 'auto_inc%';
set global auto_increment_increment = 2;
修改
create table t4 (
id int auto_increment primary key,
name char(32) not null default '',
pwd char(32) not null default ''
)engine=Innodb charset=utf8;
修改字段:
alter table 表名(t3) change 原列名(name) 新列名(username varchar(32) not null default '');
新增字段:
alter table 表名(t3) add 新列(pwd char(32) not null default '');
删除字段:
alter table 表名(t3) drop 列名(pwd);
3. 数据行:
增
insert into t3 (id, name) values (1, '你好');
查询
select * from t3; : 将表中的 所有的列全部列出
select 列名, 列名, 列名 from t3 : 将某一列的值查出
删
delete from 表名(t3); 将表中的所有的 数据删除掉, 再次添加的时候, 继续会延续上一个 ID
truncate 表名(t3); 将表中的所有的 数据删除掉, 再次添加的时候, ID 会重新开始
truncate 速度快
ps: 工作中, 线上数据库, 这个命令根本不会让你用到
delete from 表名(t3) where name = 'xxxxx';
修改
update t3 set username='zekai';
update t3 set username='xxxx' where id=3;
update t3 set username='xxxx', pwd='xxxxx' where id=3;
七. 外键: (*******************************************************************)
缺点:
1. 数据重复
2. 如果 部门过长的话, 太占用空间
解决方法:
重新设计一张表, 这张表 中存放部门的相关信息
部门表:
create table department (
id int auto_increment primary key,
depart_name varchar(32) not null default ''
)engine=Innodb charset=utf8;
insert into department (depart_name) values ('公关'), ('关关'),('关公');
create table userinfo (
id int auto_increment primary key,
name varchar(32) not null default '',
depart_id int not null default 1,
# constraint 外键名(fk_userinfo_depart) foreign key (列名(depart_id)) references 表名(department)(关联的列名(id)),
constraint fk_userinfo_depart foreign key (depart_id) references department(id)
)engine=Innodb charset=utf8;
insert into userinfo (name, depart_id) values ('root1', 1);
insert into userinfo (name, depart_id) values ('root2', 2); 错误的
注意:
创建多个外键的时候, 名称不能一样
=====> 一对多
内容总结
以上是互联网集市为您收集整理的mysql的一些基础操作全部内容,希望文章能够帮你解决mysql的一些基础操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。