发表于: 2018-03-29 10:52:43

1 536


    今天写第一份日报,其实在一个月之前我就开始做任务一了,由于每天琐碎的事情很多,怕断了日报,一直没写,现在想想不管写多少,坚持最重要了。

  现在将这段时间学到的内容整理下来:


什么是数据库?

    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。

个人业务模型:

姓名:朱明星name varchar(50)

QQ1107733786 qq long

修真类型:JAVA工程师LearningType varchar(50)

预计入学时间:201881EnrolmentTime 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]nullinlike等等。

示例:

查询年龄在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子句是非常有用的。

使用示例:

id3的手机号改为默认的"-"update students set tel=default where id=3;

将所有人的年龄增加1update students set age=age+1;

将手机号为13888888888的姓名改为"孙俪",年龄改为19update 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子句中指定任何条件。

可以在单个表中一次性删除记录。

使用示例:

删除id2的行: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参数演示:

  

带有whereSQL 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)?








返回列表 返回列表
评论

    分享到