mysql 基础
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql 基础,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8725字,纯文字阅读大概需要13分钟。
内容图文
![mysql 基础](/upload/InfoBanner/zyjiaocheng/861/89fd42693c3c4e5c990640dc34fac1b6.jpg)
mysql学习
安装教程:
https://blog.csdn.net/weixin_38239039/article/details/79629984
?
https://jingyan.baidu.com/article/fd8044fa10550d5031137adf.html
?
https://blog.csdn.net/chen97_08/article/details/81484286
?
https://blog.csdn.net/weixin_43282064/article/details/108284150
?
https://blog.csdn.net/bobo553443/article/details/81383194
----关系型数据库
-
终端操作数据库
--如何登录数据库:mysql -uroot -p123456
查询数据库中的所有数据库: show databases
mysql> show databases
-> ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)跳转数据库:use 库名
查看表:show tables;
看表字段和内容:describe user;
如何选中一个数据库进行操作:
mysql> describe usre;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)select * from admin;
select * from admin where id=1;--退出数据库:exit;
-
如何在数据库中创建我们的数据:create database test;
--查看数据库表 show tables;
--如何创建一个数据表:
CREATE TABLE pet(name VARCHAR(20),owner VARCHAR(20),species VARCHAR(20),sex CHAR(1),brith DATE,death DATE);
查看创建好的数据表的结构:describe pet;
-------添加数据
INSERT INTO pet VALUES('Tinahuan','Dine','hamster','f','1997-01-10',NULL);
INSERT INTO pet VALUES('wangwang','xiaozhou','gou','g','1996-01-10',NULL);--------mysql 常用数据类型:
类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 byte (-128,127) (0,255) 小整数值
SMALLINT 2 bytes (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 bytes (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
浮点数值
DOUBLE 8 bytes (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度
浮点数
?
类型 大小
( bytes) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4
1970-01-01 00:00:00/2038
?
结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07
?
YYYYMMDD HHMMSS 混合日期和时间值,时间戳
?
?
字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。
?
类型 大小 用途
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据
注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
?
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
?
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
?
BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
?
有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。drop 命令删除数据库
drop 命令格式:
drop database <数据库名>;
使用 mysqladmin 删除数据库
你也可以使用 mysql mysqladmin 命令在终端来执行删除命令。
以下实例删除数据库 RUNOOB(该数据库在前一章节已创建)
-
[root@host]# mysqladmin -u root -p drop RUNOOB
数据库跳转(选择) use 库名
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
MySQL 删除数据表
MySQL中删除数据表是非常容易操作的,但是你在进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。
以下为删除MySQL数据表的通用语法:
DROP TABLE table_name ;
删除数据
----删除数据
delete from pet where name='wangwang';
----修改数据
updata pet set name='wangwang' where name='zhouxingxing'
----------插入数据
INSERT INTO runoob_tbl
-> (runoob_title, runoob_author, submission_date)
-> VALUES
-> ("学习 PHP", "菜鸟教程", NOW());
常用的数据操作
增加:insert
删除:delete
修改:update
查询:select
-----mysql建表的约束
主键约束
他能够唯一确定一张表中的一条记录,也就是我们通过某个字段添加约束,就可以使得改字段,不重复且不为空。
create table usre(
id int primary key,
name varchar(20)
);
primary key :不能为空
联合主键:
--只要联合的主键值加起来不重复就可以
create table usre2(
id int,
name varchar(20),
password varchar(20)
primary key(id,name)
);
insert into usre2 values(1,'zhangsan','123');
insert into usre2 values(2,'zhangsan','123');
insert into usre2 values(2,'lisi','123');
以上的输入都为正确
insert into usre2 values(NULL,'lisi','123');
这个操作是不可以的
自增约束
create table usre3(
id int primary key auto_increment,
name varchar(20)
);
insert into usre3 (name) values('zhangsna');
mysql> select * from usre3;
+----+----------+
| id | name |
+----+----------+
| 1 | zhangsna |
+----+----------+
1 row in set (0.01 sec)
?
?
如果创建时忘记创建主键怎么办?
create table usre4(
id int,
name varchar(20)
);
解决方案
alter table usre4 add primary key (id);
删除主键?
alter table usre4 drop primary key;
修改表结构添加主键:使用modify 来修改
alter table usre4 modify id int primary key;
唯一约束
---- 约束修饰的字段的值不可以重复
create table usre5(
id int,
name varchar(20)
);
alter table usre5 add unique(name);
create table usre6(
id int,
name varchar(20),
unique(name)
);
create table usre7(
id int,
name varchar(20) unique(name)
);
create table usre8(
id int,
name varchar(20),
unique(id,name)
注意这个需要俩个组合起来不重复就好了
);
如何删除唯一约束
alter table usre7 drop index name;
添加唯一约束 modify
alter table usre7 modify name varchar(20) unique;
总结:
1,建表的时候添加约束
2,可以使用alter ... add ...
3,alter ....modify ....
删除约束
-- alter ... drop ...
?
?
非空约束
desc 表名 查看表结构
-- 修饰的字段不能为空 NULL
create table usre9(
id int,
name varchar(20) not null ,
);
默认约束 default
---就是当我们插入字段的时候没有值就是用默认值
create table usre10(
id int,
name varchar(20),
age int default 10
);
外键约束
-- 涉及俩个表 :父表,子表
-- 主表,副表
create table class(
id int primary key,
name varchar(20)
);
insert into class values (1,'yiban');
insert into class values (2,'erban');
insert into class values (3,'dsnban');
insert into class values (4,'siban');
create table student(
id int primary key,
name varchar(20),
class_id int,
foreign key(class_id) references class(id)
);
insert into student values (1001,'siban',1);
insert into student values (1002,'siban',2);
insert into student values (1003,'siban',3);
insert into student values (1004,'siban',4);
结论:
-- 主表中没有的数据在副表中不可以使用
-- 主表中的记录被副表引用,是不可以被删除的。
删除语句:
delete from class where id=1;
修改表的编码方式:
ALTER TABLE `test` DEFAULT CHARACTER SET utf8;
该命令用于将表test的编码方式改为utf8;
修改字段的编码方式:
ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL;
该命令用于将表test中name字段的编码方式改为utf8
内容总结
以上是互联网集市为您收集整理的mysql 基础全部内容,希望文章能够帮你解决mysql 基础所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。