从今天开始学习sql的基础知识,运用的是mysql工具来学习sql的相关基础知识。
sql是用于访问和处理数据库的标准的计算机语言。在学习Java的过程中,这是需要学习的基础知识。
sql能够对数据库实现增删改查的功能,这对学习Javaweb有帮助。现在开始学习mysql。
1.mysql的相关的概念介绍
mysql(Relational Database Management System)指的是关系数据库,基本上一个数据库中有一个或多个表格组成。
基本格式如下:
表头(header):指的是每一列的名称,也就是表中每一列数据的属性。
列(col):是指具有相同数据类型的数据的集合,即表头每个属性下的数据的集合。比如学生的名字数据。
行(row):用来描述每一个人或物的具体的信息。比如一个学生的信息。
键(Key):用来分辨数据表中特定人或物的标识,在当前表得当前列是唯一的。
值(Value):行的具体数据,每一个值必须与该列的数据类型相同。
2.在windows命令行中运行:
net start mysql:启动
net stop mysql:停止
sc delete mysql:卸载
dos命令行必须要在管理员模式下运行。
3.mysql脚本的基本组成
与Java类似,mysql基本上有标识符,关键字,语句以及函数组成。
标识符:用来命名对象的,比如数据库、表、列、变量等。
标识符的命名规则是在有多个单词时需要用下划线分隔。
一般以字母和数字组成。
关键字:
语句:像Java类中的代码一样,是组成mysql脚本的基本单位,每条语句都能完成特定的操作。
函数:一般分为字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数。
3.mysql的数据类型
mysql分为数字、日期\时间、字符串三大类。
数字:整除:tinyint(非常小的整数,0-255)、smallint(短整型)、mediumint(中等整数)、int(正常整数)、bigint(长整数)
浮点数:float(单精度)、 double(双精度)、real、decimal
日期和时间:data、time、datetime、timestamp、year
字符串:字符串:char、varchar(可变字符型)
文本:tinytext、text、mediumtext、longtext
二进制:tinyblob、blob、mediumblob、longblob
4.登录mysql数据库
使用命令行,输入:
mysql -u root -p
5.mysql的增删改查
增加:create database 数据库名 [其他选项];(创建一个数据库)
是操作mysql的第一步,例如创建一个samp_db的数据库用来存储上面的学生信息表:
create database samp_db character set utf8;(character set utf8:指定数据库的字符串编码为utf8)
同时要选择数据库来进行下一步的创建数据表,命令:use 数据库名;
create table 表名称(列名称);
选择数据库后就要进行数据库表的创建,比如创建上面的学生信息表:
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 "-"
);
"id" 为列的名称;
"int" 指定该列的类型为 int(取值范围为 -8388608到8388607), 在后面我们又用 "unsigned" 加以修饰,
表示该类型为无符号型, 此时该列的取值范围为 0到16777215;
"not null" 说明该列的值不能为空, 必须要填, 如果不指定该属性, 默认可为空;
"auto_increment" 需在整数列中使用, 其作用是在插入数据时若该列为 NULL, MySQL将自动产生
一个比现存值更大的唯一标识符值。在每张表中仅能有一个这样的值且所在列必须为索引列。
"primary key" 表示该列是表的主键, 本列的值必须唯一, MySQL将自动索引该列。
insert into 表名 [(列名1,列名2,列名3,....)] values (值1,值2,值3,.....);(向表中插入数据)
比如将上面学生信息数据添加到数据库表中:
insert into students values(1,"王刚","男",20,"13811371377"),(2,"孙丽华","女",21,default),(3,"王永恒","男",23,"18377777036"),
(4,"郑俊杰","男",19,"13910272345"),(5,"陈芳","女",22,"18080800888"),(6,"张伟朋","男",21,"13288097888");
当需要部分插入时:
insert into students (name,sex,age) values ("孙丽华","女",21);
alter table 表名 add 列名 列数据类型 [after 插入位置];(对创建后的数据表进行添加列操作)
在表的最后追加列 address:
alter table students add address char(60);
在名为 age 的列后插入列 birthday:
alter table students add birthday date after age;
删除:delete from 表名称 where 删除条件;(删除数据表中特定的数据)
删除id为2的行:
delete from students where id=2;
删除所有年龄小于21岁的数据:
delete from students where age<20;
删除表中的所有数据:
delete from students;
alter table 表名 drop 列名;(对创建后的数据表进行删除列操作)
删除 birthday 列:
alter table students drop birthday;
drop table 表名;(删除整张表)
删除 workmates 表:
drop table workmates;
drop database 数据库名;(删除整个数据库)
删除 samp_db 数据库:
drop database samp_db;
修改:update 表名称 set 列名称 = 新值 where 更新条件;(修改数据表中的特定数据)
将id为5的手机号改为默认的"-":
update students set tel=default where id=5;
将所有人的年龄增加1:
update students set age=age+1;
将手机号为 13288097888 的姓名改为 "张伟鹏", 年龄改为 19:
update students set name="张伟鹏", age=19 where tel="13288097888";
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 表名 rename 新表名;(重命名表)
重命名 students 表为 workmates:
alter table students rename workmates;
查询:show databases;(查看创建的所有数据库)
show table;(查看已创建的表的名称)
describe 表名;(查看指定的表的详细信息)
select 列名称 from 表名称 [查询条件];(根据一定的查询条件在数据库中获取数据)
比如要查询students表中所有学生的年龄和名字:
select name,age from students;
当要查询所有内容时:
select * from students;
select 列名称 from 表名称 where 条件;(按特定条件查询数据)
当要查询所有性别为女的信息:
select * from students where sex="女";
查询年龄在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中简单的增删改查的操作。