数据库学习——MySQL入门

数据库这门课为什么这么难学,该怎么学? - 阿里云云栖社区的回答 - 知乎
在这里插入图片描述

1.MySQL安装

MySQL官网下载
选择Windows (x86, 32-bit), MSI Installer(完整版)
安装之后:
cmd
cd 到MySQL的bin目录下:
mysql -u root -p
(输入密码)
在这里插入图片描述

2.数据库常用命令

数据库的增删,注意有分号!
show databases;
create database gc;
drop database gc;

3.数据类型

DB里面含有很多数据表table:
在这里插入图片描述
数据表table的数据结构:(包含了Type,即数据类型)
在这里插入图片描述
MySQL的三种数据类型:

文本类

常用:VARCHAR(size)、TEXT、LONGTEXT
在这里插入图片描述

数字类

常用:TINYINT(size)、INT(size)、BIGINT(size)、DOUBLE(size,d)
在这里插入图片描述

日期类

常用:DATETIME()
在这里插入图片描述

4.数据表常用命令

在对表进行操作之前,必须得选定某个数据库。例:选定刚刚创建的gc数据库——use gc

(1)创建数据表

create table table_name(
		colum_name data_type,
		colum_name data_type,
		… …
		colum_name data_type
);

例:某个网站下的用户账号

create table account(
	id bigint(20),
	createTime datetime,
	ip varchar(255),
	mobile varchar(255),
	nickname varchar(255),
	username varchar(255),
	avatar varchar(255),
	brief text,
	job varchar(255),
	location varchar(255),
	qq varchar(255),
	gender int(11),
	city varchar(255),
	province varchar(255)
);

(2)删除数据表

drop table table_name;

(3)显示数据表

显示该表的所有属性

show tables;
//指定数据表的元素显示
describe table_name;

(4)修改数据表——alter

  • 数据表增、删列(增删属性)
alter table 【table_name】 add 【column_name】【data_type】[not null][default];
alter table 【table_name】 drop 【column_name】; 

例:在刚刚创建的account表中增删一列c1

alter table account add c1 int(11) not null default 1;
alter table account drop c1;
  • 修改列信息
alter table 【table_name】 change 【old_column_name】 【new_column_name】【data_type】;
  • 修改表名
alter table 【table_name】 rename 【new_table_name】;

(5)查看表数据——select

显示表内的对象及其属性的值

select * from table_name; //查询所有对象的所有属性
select column_name1, column_name2, ... from table_name; //查询所有对象的选定属性
select distinct column_name from table_name; //精确查询,查询所有对象的选定属性,但是会去除重复的行

(6)插入数据——insert into

(在(4)之后,表里插入一行,相当于插入一个对象,对象拥有表里罗列的各种属性)

insert into table_name values(value1, value2, ... );//value的个数取决于表的属性个数,对所有属性赋值
insert into table_name(column_name1, column_name2, ... ) values(value1, value2, ... );//只对选定属性赋值

如:创建一行仅对id和ip属性赋值
在这里插入图片描述

(7)insert into 和 select组合使用

在(5)和(6)的基础之上——在数据迁移的时候常用

insert into table_name1 select col_name1,col_name2 from table_name2;
insert into table_name2 (col_name1,col_name2) select col_name3,col_name4 from table_name2;

5.where语法

where后面可以通过and 与or 运算符组合多个条件进行筛选,运算符包括:
"=" 、"!="、">"、"<"、">="、"<="、"between"、"like"

(1)选定符合条件的行

select * from table_name where column_name 运算符 value;

如:从account表里选出ip =20的那些行在这里插入图片描述

(2)删除符合条件的行

delete from table_name where column_name 运算符 value;

(3)null的判断用 is/ is not

select * from table_name where col_name is null;
select * from table_name where col_name is not null;

切记:无法用"="查询出来

(4)order by排序

//按单一列排序
select * from table_name 【where 子句】 order by col_name [asc/desc];
//按多列排序,优先级依次降低,只对第一次排序后某些相等的值进行第二次关键字排序。
select * from table_name 【where 子句】 order by col_name1[asc/desc],col_name2[asc/desc]……;

不加asc/desc时,默认按照关键字进行 asc 升序排序

(5)limit语法

select * from table_name 【where 子句】【order by子句】 limit [offset], rowCount;

offset:查询结果的起始位置,第一条记录的是0;
rowCount:从offset位置开始,获取的记录条数。
limit 2 相当于 limit 0,2;
例:limit 2,2相当于从筛选结果的第二条记录开始,选两条记录。
在这里插入图片描述

(6)where …in语法

select * from table_name where col_name in (value1,value2 … …);
select * from table_name1 where col_name1 in (select col_name2 from table_name2 [where子句]);

col_name in (value1,value2…) 等同于 col_name= value1 or col_name=value2…

(7)where …between语法

select * from table_name where col_name between value1 and value2;
select * from table_name where col_name not between value1 and value2;

(8)where …like语法

常用在字符串查找,int也行,不常用

select  * from table_name where col_name like pattern;  
select  * from table_name where col_name not like pattern; 

pattern:匹配模式

例如:'abc'仅能匹配'abc''%abc'可以匹配以'abc'结尾的字符串;'abc%'可以匹配以'abc'开头的字符串;'%abc%'能匹配包含'abc'的字符串。%是通配符,可以把它当作任何字符串。

6.更新表数据

update table_name set col_name = xxx [where子句]; //修改单列
update table_name set col_name1=xxx,col_name2=xxx…[where子句]; //修改多列
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值