数据开发之MySQL

数据库基础

一、 数据库操作

1.查看数据库 show databases;
2.创建数据库 create database 库名 default charset = utf8;
3.删除数据库 drop database 库名;
4.打开数据库 use 库名;

二、数据表操作

数据库管理系统中,可以有很多数据库,每个数据库中可以有多张表。
1.查看表 show tables;
2.创建表 create table 表名(字段名1 类型,字段名2 类型) engine = innpdb default charset = utf8;

CREATE TABLE  --create table
[IF NOT EXISTS] tb_name -- 不存在才创建,存在就跳过 if not exists
(column_name1 data_type1 -- 列名和类型必选
  [ PRIMARY KEY -- 可选的约束,主键 primary key
   | FOREIGN KEY -- 外键,引用其他表的键值 foreign key
   | AUTO_INCREMENT -- 自增ID auto_increment
   | COMMENT comment -- 列注释(评论)
   | DEFAULT default_value -- 默认值
   | UNIQUE -- 唯一性约束,不允许两条记录该列值相同 unique
   | NOT NULL -- 该列非空
  ], ...
) [CHARACTER SET charset] -- 字符集编码 character
[COLLATE collate_value] -- 列排序和比较时的规则(是否区分大小写等)
create table if not exists users(
	id int not null primary key auto_increment,
	name varchar(4) not null,
	age tinyint,
	sex enum('男','女')
) engine = innodb default charset = utf8;

从另一张表的查询结果创建表:

CREATE TABLE tb_name AS SELECT * FROM tb_name_old WHERE options

从另一张表复制表结构创建表:

CREATE TABLE tb_name LIKE tb_name_old

3.删除表 drop table 表名;

drop table [if exists] 表名1[,表名2]

4.清空表数据 (3种方式)
(1)delete------ 是逐行删除速度极慢,不适合大量数据删除。

Delete from 表名 

(2)truncate---- 删除所有数据,保留表结构,不能撤消还原。`

TRUNCATE TABLE 表名

(3)drop-------- 删除表,数据和表结构一起删除,快速。
先复制表结构

DROP TABLE 表名

5.修改表结构
修改表名 alter table 原表名 rename as 新表名

ALTER TABLE 表名 修改的选项

1.添加字段
语法:alter table 表名 add 添加的字段信息
# 在 users 表中 追加 一个 num 字段 
alter table users add num int not null;
#增加列在某列之后
alter table user_info add school varchar(15) after level;
alter table 表名 add 增加列的名称 数据类型 位置(after levellevel 之后)
# 在表的最前面添加一个字段 
alter table users add aa int first;

2.修改字段
语法:alter table 表名 change|modify 被修改的字段信息

 - change:可以修改字段名
 - modify:不能修改字段名

#更换列的名称及数据类型
alter table user_info change job profession varchar(10);
alter table user_info change 原列名 修改列名 修改数据类型
#更改数据类型
alter table user_info modify achievement int(11) default 0;
alter table 表名 modify 修改列名称 数据类型 默认值等

3.删除字段
语法:alter table 表名 drop 被删除的字段名
alter table users drop aa;

选项集合

    { ADD COLUMN <列名> <类型>  -- 增加列
     | CHANGE COLUMN <旧列名> <新列名> <新列类型> -- 修改列名或类型
     | ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT } -- 修改/删除 列的默认值
     | MODIFY COLUMN <列名> <类型> -- 修改列类型
     | DROP COLUMN <列名> -- 删除列
     | RENAME TO <新表名> -- 修改表名
     | CHARACTER SET <字符集名> -- 修改字符集
     | COLLATE <校对规则名> } -- 修改校对规则(比较和排序时用到)

修改表中自增的值

# 在常规情况下,auto_increment 默认从1开始继续递增 
alter table users auto_increment = 1000; #从1000开始递增

修改表引擎语句

#将表引擎InnoDB改为MyISAM
alter table users engine = 'myisam' 

查看表结构 desc 表名;
查看建表语句 show create table users;

三、 数据操作 增删改查

3.1 插入
  • 普通插入(全字段):
    insert into table_name values(value1,value2,···)
  • 普通插入(限定字段):
    insert into table_name(column1,column2,···) values(value1,value2,···)
  • 多条一次性插入:
    insert into table_name(column1,column2,···) values(value1_1,value1_2,···),(value2_1,value2_2,···)
  • 从另一个表导入(全字段):
    insert into table_name select * from table_name2 [where key=value]
  • 从另一个表导入(限定字段):
    insert into table_name(column1,column2,···) select * from table_name2 [where key=value]
INSERT INTO cxcyds_kjjr.sec_project (
	id,
	enterprise_id,
	ent_name,
	credit_code,
	com_year,
	img_url,
	rank,
	project_name,
	project_introduce,
	tech_innovation,
	tech_discourse,
	project_percentage,
	bs_plan,
	competitive_advantage,
	market_share,
	economic_risk,
	equity_financing,
	debt_financing,
	need_equity_financing,
	need_debt_financing,
	matching_activities,
	recom_credit_agency,
	recom_investment_agency,
	financing_roadshow,
	recom_subfund 
) 
SELECT
d.uid id, -- 参赛项目编号
d.uid enterprise_id, -- 企业id
c.ename, -- 企业名称
c.elicense, -- 统一信用代码
2021 AS com_year,-- 大赛年度
producturl,-- 图片url
gnranking,-- 大赛名次
pname,-- 参赛项目名称
techpro,-- 参赛项目介绍(1000字以内)
technological_innovation,-- 产品技术创新点(1000字以内)
technological_discuss,-- 技术成熟性及可靠性论述(500字以内)
pscale,-- 项目占去年企业收入比例
bsmode,-- 商业模式及业务拓展计划
market,-- 产品市场分析及竞争优势
shichangfene,-- 市场份额占有率
risk,-- 经济风险与对策
isfcexpgq,-- 是否有股权融资
isfcexpjq,-- 是否有债权融资
isfcneedgq,-- 是否有股权融资需求
isfcneedjq,-- 是否有债权融资需求
dqyduijiehuodong,-- 申请大赛组织的大企业对接活动(1是
isaccep,-- 申请大赛推荐信贷机构(1是
isacceptre,-- 申请大赛推荐投资机构(1是
isluyan,-- 申请大赛组织的融资路演(1是
issqgjkjcg -- 申请国家科技成果转化引导基金设立的子基金推荐(1是
FROM bsplan d 
left join member c on c.id = d.uid
WHERE pname IS NOT NULL 
	AND pname <> '' 
	and c.elicense IS NOT NULL
GROUP BY
	1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 
3.2 删除

delete from 表名 where 字段 = 某个值;

3.3 修改

update 表名 set ··· where ···

  • update 表名 set 字段 = 某个值 where 条件;
  • update 表名 set 字段1 = 值1,字段2 = 值2 where 条件;
  • update 表名 set 字段 = 字段 + 值 where 条件

update 与 join 结合

UPDATE cxcyds_kjjr.sec_project t1
INNER JOIN cxcyds.lanhai_bsplan t2 ON t1.id = t2.uid 
SET t1.xrongzi_t = t2.xrongzi_t,
	t1.xrongzi_a = t2.xrongzi_a,
	t1.xrongzi_b = t2.xrongzi_b,
	t1.xrongzi_c = t2.xrongzi_c,
	t1.xrongzi_qita = t2.xrongzi_qita
WHERE t1.com_year = '2022' 

四、创建索引

4.1 create方式创建索引:
create
[unique -- 唯一索引
|fulltext -- 全文索引
] index index_name on table_name -- 不指定唯一或全文时默认普通索引
(column1[(length)[desc|asc]][,column2,···]) -- 可以对多列建立组合索引
4.2 alter方式创建索引:
alter table tb_name add [unique|fulltext] [index] index_content(content)

五、删除索引

5.1 drop方式删除索引:
drop index <索引名> on <表名>
5.2 alter方式删除索引:
alter table <表名> drop index <索引名>

六、replace into和insert into的区别

replace into 跟 insert into 功能类似,不同点在于:replace into 首先尝试插入数据到表中,

  • 如果发现表中已有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据;
  • 否则,直接插入新数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值