SQL零基础入门记录贴--2

举报
编外无名氏 发表于 2019/07/22 11:08:15 2019/07/22
【摘要】 零基础学SQL流水账-2


Delete 之前先用Select 查询定位 避免删除错了。

update 表名 set 字段名 ='赋值(新的,想要的字段)' where 字段名='赋值(旧的,原来的数字,想替换掉的字段)' and (可以用and语句连接查找多重条件);

update、delete、select 都一般和where 连一起使用,以便精准定位。AND INSERT 



插入时间:

创建:create table fish_recodes ( first_name varchar(30),last_name varchar (20),common varchar(20), location varchar (20),state varchar(10),weight varchar(10), data date);

插入: insert into fish_recodes values ('george','perry','bass.largemouth','montgomery lake' ,'gz','22lb 4oz','19-06-28');

注意时间是19年,输入2019年会报错。



describe 表名; 显示表格的内容

show create teble 表名 ; 显示创建表的时候的SQL命令


改造表,创建主键(需要赋值not null, 主键不能为空, 最后定义primary key(字段名));


CREATE TABLE my_contacts_2 (contact_id int not null auto_increment,

  last_name varchar(30) DEFAULT NULL,

  first_name varchar(20) DEFAULT NULL,

  email varchar(50) DEFAULT NULL,

  gender varchar(1) DEFAULT NULL,

  birthday date DEFAULT NULL,

  profession varchar(50) DEFAULT NULL,

  location varchar(50) DEFAULT NULL,

  status varchar(20) DEFAULT NULL,

  interests varchar(100) DEFAULT NULL,

  seeking varchar(100) DEFAULT NULL,primary key(contact_id));


不想删除,然后重新创建,所以有alter 改变语句:

alter table my_contacts add column contact_id int not null auto_increment first,add primary key (contact_id);

会自动创建contact_id 主键按序号排序。auto_increment, primary key(), 记得单词 auto_increment 下划线做为一个单词。


表的改名:(rename to)   alter table 表名 rename to 新名字 ;


表中栏目名字改名(change column 旧名字新名字)

alter table 表名 change cloumn 旧的栏目名   新的栏目名 为栏目名定义字段/数值  not null (非空值) ; 

如:alter table my_contacts_2 change column seeking interesting varchar(20) not null 


如果这个表没有标注主键,还可以设置为主键,只需要在后面增加 add primary key (栏目名);

---alter table my_contacts_2 change column seeking interesting varchar(20) not null add primary key interesting


change column 可以同时变更多行记录

alter table 表名 

change column 栏目A旧名字  栏目A要变更的新名字  定义字段类型 varchar (XX)  

change column 栏目B旧名字  栏目B要变更的新名字  定义字段类型 varchar (XX) 

如果不想修改表格名字,只是想修改字段类型,则使用MODIFY

alter table my_contacts modify column contact_id int(1);


增加栏:

alter table my_contacts add column family_number  varchar(10) , add date date ,add income decimal (8,2);

(decimal 表示数值保留5位数,2位小数点)


删除表栏

alter table my_contacts drop column family_number ;  

alter table my_contacts drop column family_number varchar(10); 反而会报错,删除的时候不需要带上字段类型,直接删除栏目即可。

在删除整栏之前,先用SELECT定位是要删除的数据会更好~


练习题回顾:

1. 变更表名   alter table 表名 hooptie rename to  新表名 car_table;

2. 变更栏目名

alter table car_table change mo model varchar(10)  , change howmuch price decimal(5,2);

3. 新增栏目

alter table car_table add column car_id int(2)  not null auto_increment first , add primary key (car_id), add column VIN varchar(16) after car_id ,  add color char(3),add year year ;

4. 调整栏目之间的位置

alter table car_table modify column color after model, moify column year sixth (把表格中的颜色放在型号后面,把年固定放在表格的第6列)

只有在添加新的列的时候才能变更位置,modif是用来修改字段类型的。

-----这一连串重复的可以合并成一条,而且可以指定位置修改如下:


alter table hooptie rename to car_table, add column car_id int not null auto_increment first,add primary key(car_id), add column vin varchar(16) after car_id, change column mo model varchar(20), change column howmuch price decimal (5,2),  modify column color after model,modify column year sixth;

原来的主键感觉设置错了,变更:alter table 表格名字 drop primary key; 自动填充的命令auto_increment 是不能有空值的,基本都和not null 一起使用。


上面这些转换成EXCEL,相当于查找,替换功能,筛选功能。EXCEL中有很多函数,在SQL中也可以使用

如:取字段函数

select right(列名,要取的字符串长度)from 列所在的表格的名字;select right/left (directions,4) from easy_drinks;

SQL中还有一个字段: select substring_index (location, ',', 1 )  from easy_drinks;   取easy_drinks 表格中的location列 中 字符串的第一个逗号前的字符串。

变更大小写:Upper和lower; select upper / lower ; reverse(反转字符串); 

去掉空格:左边/右边 ltrim(字符串)

substring(字符串,字符串位置,长度)

小结:alter table,alter+add, alter+drop,alter+modify,alter+change,结合 substring 取字符串函数。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。