发表于: 2018-03-29 10:52:43
1 536
今天写第一份日报,其实在一个月之前我就开始做任务一了,由于每天琐碎的事情很多,怕断了日报,一直没写,现在想想不管写多少,坚持最重要了。
现在将这段时间学到的内容整理下来:
什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
个人业务模型:
姓名:朱明星name varchar(50)
QQ:1107733786 qq long
修真类型:JAVA工程师LearningType varchar(50)
预计入学时间:2018年8月1日EnrolmentTime datetime
毕业院校:南京工业大学school varchar(50)
线上学号:3165 OnlineNumber int
立愿:昨夜西风凋碧树,独上高楼,望尽天涯路,人生需要多一些选择;衣带渐宽终不悔,为伊消得人憔悴,既然目标是地平线,留给世界的只能是背影;众里寻他千百度,蓦然回首,那人却在灯火阑珊处,要专注地实现自己的理想。wish varchar(200)
辅导师兄:牛涛Mentoringbrother varchar(50)
从何处了解:知乎KnowSource varchar(50)
MySQL
Windows系统MySQL下载安装教程:http://www.jb51.net/article/96898.htm
学习教程:http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html#d2
Mysql相关数据类型不做过多介绍,菜鸟教程里面有。
MySQL连接
mysql -u root -p
Enter password:******
MySQL创建数据库
使用create database语句可完成对数据库的创建,创建命令的格式如下:
create database数据库名[其他选项];
如我们需要创建一个名为samp_db的数据库,在命令行下执行以下命令:
create database samp_db character set gbk;
为了便于在命令提示符下显示中文,在创建时通过character set gbk将数据库字符编码指定为gbk。创建成功时会得到Query OK,1 row affected(0.04sec)的响应。
注意:MySQL语句以分号(;)作为语句的结束,若在语句结尾不添加分号时,命令提示符会以->提示你继续输入(有个别特例,但加分号是一定不会错的)。
提示:可以使用show databases;命令查看已经创建的数据库。
MySQL删除数据库
Drop database 数据库名;
MySQL选择数据库
要对一个数据库进行操作,必须先选择该数据库,否则会提示错误:
ERROR 1046(3D000):No database selected
两种方式对数据库进行使用的选择:
一:在登录数据库时指定,命令:mysql-D所选择的数据库名-h主机名-u用户名-p
例如登录时选择创建的数据库:mysql-D samp_db-u root-p
二:在登录后使用use语句指定,命令:use数据库名;
use语句可以不加分号,执行use samp_db来选择刚刚创建的数据库,选择成功后会提示:Database changed
MySQL创建数据库表
创建MySQL数据表需要以下信息:表名、表字段名、定义每个表字段。
以下为创建MySQL数据表的SQL通用语法:
create table table_name(column_name column_type);
表的命令(列的名称列的数据类型)
以创建students表为例,表中将存放学号(id)、姓名(name)、性别(sex)、年龄(age)、联系电话(tel)这些内容:
create table students(
id int unsigned not null auto_increment primary key,
name char(8) not null,
sex char(4) not null,
age tinyint unsigned not null,
tel char(13) null default "-");
提示:1.使用show tables;命令可查看已创建了表的名称;
2.使用describe数据表名;命令可查看已创建的表的详细信息。
MySQL删除数据库表
MySQL中删除数据表要非常小心,因为执行删除命令后所有数据都会消失。
删除MySQL数据表的通用语法:
drop table table_name;
MySQL数据库表插入数据
MySQL数据表插入数据通用的 insert into SQL语法:
insert into table_name ( field1, field2,...fieldN )
values
( value1, value2,...valueN );
Insert into 表名[(列名1,列名2,列名3,...)] values (值1,值2,值3,...);
插入多条数据
insert into table_name(field1,field2,...fieldN)
values
(valueA1,valueA2,...valueAN),
(valueB1,valueB2,...valueBN),
(valueC1,valueC2,...valueCN)......;
以下向 students表插入三条数据:
MySQL数据库表查询数据
select语句用来根据一定的查询规则到数据库中获取数据,其基本的用法为:
select列名称from表名称[查询条件];
例如要查询students表中所有学生的名字和年龄,输入语句
select name,age from students;
结果如下:
也可以使用通配符*查询表中所有的内容,语句:select*from table_name;
结果如下:
MySQL数据库表按特定条件查询数据
SQL select语句使用where子句从数据表中读取数据的通用语法:
select field1,field2,...fieldN from table_name1,table_name2...
[where condition1[and[or]]condition2.....;
select列名称from表名称where条件;
查询语句中你可以使用一个或者多个表,表之间使用逗号分割,并使用where语句来设定查询条件。
可以在where子句中指定任何条件。
可以使用and或者or指定一个或多个条件。
以所有性别为男的信息为例,输入查询语句:select*from students where sex="男";
where子句不仅仅支持"where列名=值"这种名等于值的查询形式,对一般的比较运算的运算符都是支持的,例如=、>、<、>=、<、!=以及一些扩展运算符is[not]null、in、like等等。
示例:
查询年龄在21岁以上的所有人信息:select*from students where age>21;
查询名字中带有"王"字的所有人信息:select*from students where name like"%王%";
查询id小于5且年龄大于20的所有人信息:select*from students where id<5 and age>20;
MySQL数据库表修改或更新数据
如果我们需要修改或更新MySQL中的数据,我们可以使用SQL update命令来操作。
update table_name set field1=new-value1,field2=new-value2[where clause];
update表名称set列名称=新值where更新条件;
可以同时更新一个或多个字段。
可以在where子句中指定任何条件。
可以在一个单独表中同时更新数据。
需要更新数据表中指定行的数据时where子句是非常有用的。
使用示例:
将id为3的手机号改为默认的"-":update students set tel=default where id=3;
将所有人的年龄增加1:update students set age=age+1;
将手机号为13888888888的姓名改为"孙俪",年龄改为19:update students set name="孙俪",age=19 where tel="13888888888";
当我们需要将字段中的特定字符串批量修改为其他字符串时,可已使用以下操作:
update table_name set field=replace(field,'old-string','new-string')[where clause]
MySQL数据库表删除表中的数据
delete from table_name[where clause]
如果没有指定where子句,MySQL表中的所有记录将被删除。
可以在where子句中指定任何条件。
可以在单个表中一次性删除记录。
使用示例:
删除id为2的行:delete from students where id=2;
删除所有年龄小于22岁的数据:delete from students where age<22;
删除表中的所有数据:delete from students;
MySQL数据库表获取指定的数据
SQL like子句中使用百分号%字符来表示任意字符。
语法
以下是SQL select语句使用like子句从数据表中读取数据的通用语法:
select field1,field2,...fieldN
from table_name
where field1 like condition1[and[or]]filed2='somevalue'
查询名字中带有"王"字的所有人信息:select*from students where name like"%王%";
MySQL union操作符
MySQL union操作符用于连接两个以上的select语句的结果组合到一个结果集合中。多个select语句会删除重复的数据。
MySQL union操作符语法格式:
select expression1,expression2,...expression_n from tables
[where conditions]
union[all|distinct]
select expression1,expression2,...expression_n from tables
[where conditions];
distinct:可选,删除结果集中重复的数据。默认情况下union操作符已经删除重复数据,distinct修饰符对结果没啥影响。
all:可选,返回所有结果集,包含重复数据。
distinct参数演示:
order by age按照升序对记录进行排序。
all参数演示:
带有where的SQL union演示:
MySQL排序
以下是SQL select语句使用order by子句将查询数据排序后再返回数据:
select field1,field2,...fieldN table_name1,table_name2...order by field1,[field2...][asc[desc]]
asc升序,desc降序
创建后表的修改
alter table语句用于创建后对表的修改,基础用法如下:
添加列
基本形式:alter table表名add列名列数据类型[after插入位置];
示例:
在表的最后追加列address:alter table students add address char(60);
在名为age的列后插入列birthday:alter table students add birthday date after age;
修改列
基本形式:alter table表名change列名称列新名称新数据类型;
示例:
将表tel列改名为telphone:alter table students change tel telphone char(13)default"-";
将name列的数据类型改为char(16):alter table students change name name char(16)not null;
删除列
基本形式:alter table表名drop列名称;
示例:
删除birthday列:alter table students drop birthday;
重命名表
基本形式:alter table表名rename新表名;
示例:
重命名students表为workmates:alter table students rename workmates;
删除整张表
基本形式:drop table表名;
示例:删除workmates表:drop table workmates;
删除整个数据库
基本形式:drop database数据库名;
示例:删除samp_db数据库:drop database samp_db;
存在疑问:查询名字中带有"王"字的所有人信息:select*from students where name like"%王%";
为什么汉字要加两个%(%王%),数字可以只加一个%(%8)?
评论