SQL零基础入门记录贴
都在说大数据,人工智能,各种概念和术语让我一个小白连书都快看不懂了。
或许深入学习一门计算语言会能更多的知道一点,终于在本周的6.18号,启动了SQL学习,
希望能从这里开始入门了解一些计算类语言,更贴近的了解一些术语在说什么,更多的深入了解一些趋势,
考虑到自己有懒癌症基因,避免三天打鱼两天晒网,因此找个时机记录下自己的学习流水。
6-18 安装就花了一天,最后还是请别人帮忙,搞定了Mysql的安装,不要问我为什么不安装Oracle, 不是我不想(毕竟我找到的课件也是Oracle为软件基础教学)而是我真的装不来(o(╥﹏╥)o)
6-19,6-20 教材:深入浅出sql
创建数据库:CREATE database
创建表:CREATE table my_contacts (last_name VARCHAR(30),first_name VARCHAR(20),email VARCHAR(50),gender VARCHAR(1),birthday DATE,profession VARCHAR(50),location VARCHAR(50),status VARCHAR(20),interests VARCHAR(100),seeking VARCHAR(100))
注意标点符号必须是英文半角符号,括号要写全,单词要写对,否则都会报错,最后的;不要忘记了!;代表执行命令
必须带上表述单位的VARCHAR/int/blob/desc/dec
删除表:DROP my_contacts; (所有的东西都会被删除,全部,都,慎用)
计量单位:
VARCHAR, 自定义字符串长度 CHAR (1) T/F是他的最爱 INT 整数,排除了分数 DATE/DATETIME 一个管日期一个管时间
BLOB 长文本符号
DESC 定义数字显示出来的长度位数和小数点位数
插入给表格赋值:INSERT INTO....VALUES(..);
INSERT INTO my_contacts(last_name,first_name,email,gender,birthday,profession,location,status,interests,seeking)
VALUES('zhang','san','huawei@com','F','1802-12-10','management','shenzhen','specality','learning','beautiful');
在MY SQL中有自动换行,一个命令中间不可以敲多个ENTER键产生不同行,会报错。
可以变化顺序:
INSERT INTO my_contacts(last_name,first_name,location,email,gender,birthday,profession,status,interests,seeking) VALUES('li','si','shenzhen','huawei1@com','F','1980-1-12','IT','single','edit code','scenery')
可以直接按照表格创建好的列的顺序赋值,从而省略插入位置的代码编写
INSERT INTO my_contacts VALUES ('wang','er','huawei3@com','M','1999-1-1','student','guangzhou','single','learning','high score');
可以查人不完整的列,这里必须制定位置行赋值
INSERT INTO my_contacts(first_name,email,profession,location) VALUES ('li','xiaoming@com','worker','guangzhou');
Insert into easy_drinks values ('tea','soda','1.5','blueberry','0.76','stir with ice'), ('soda','pineapple','1.5','blueberry','0.76','stir with ice');
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
可以一次性插入赋值多行
查找功能:SELECT * FROM 表格 where = ‘赋值’;
SELECT* from my_contacts where last_name ='zhang';
查询的单位格式惯例:
VARCHAR,CHAR,DATE,DATETIME,BLOB 需要加上单引号;DEC和int不需要单引号直接等于。
关联查询:selete * from 表明 where 赋值 and 赋值
select main from easy_drinks where amount1 = 1.5 and drink_name = 'tea';
注意:= 代表一致,'< '和 '>' 不是代表小于和等于,而是代表不等于。
select...or
选择性选择;select drink_name from easy_drinks where second= 'pineapple_juice' or main = '二氧化碳';
and 和or 的区别要注意(前者结果显示交集,后者显示并集)
查询NULL的列值(用is null 语句)
select last_name,first_name from my_contacts where gender is null;
模糊查询 like (通配符号 % 和_)
select * from my_contacts where location like '%en'; (%代表任意数量的未知字符的替身,以en结尾的地方)
select * from my_contacts where last_name like '%g';
select * from my_contacts where last_name like '_g';(_代表前面一位的未知字符的替身,g前面只有一位,以g结尾的名字)
select * from my_contacts where last_name like 'g%';
位置放在哪里代表在前面还是在后面的条件限制。
between...and 查询, 节省时间,对比:
select drink_name from drink_info where calories between 30 and 60;
select drink_name from drink_info where calories >=30 and calories<=60;
显示表:
desc drink_info;
查询集合和非集合:in 和not in (not in 是个例外可以不紧跟where)
select date_name from black_book where rating in ( 'innovative','fabulous','delightful','pretty good');
select date_name from black_book where rating not in ( 'innovative','fabulous','delightful','pretty good');
select date_name from black_book where not rating in ( 'innovative','fabulous','delightful','pretty good');
其他请务必注意 not 必须紧跟where
select date_name from black_book where not date_name like 'a%' and not date_name like 'b%' ;
运算符小结:* \ is null and or between =<>
删除相同数据信息记录,和select一样。
delete from easy_drinks where directions ='stir with ice'; 删除表中重复的某一行。
可以删除多行或者一行取决于where的条件设定
缺陷:delete 不能删除单一表中某一个列的特定值;也不能删除某一列的所有值;
删除所有数据:delete from 表名。
delete 语句搭配where删除和select 搭配where 使用语句命令一致。但是delete定位后删除整行。
好像感觉SQL的命令和英语语法结构还挺相像的???Hoho, 加油入门吧~~~
- 点赞
- 收藏
- 关注作者
评论(0)