目录
运行环境
一.数据库
1.创建数据库
2.查询数据库
3.修改数据库名称
4.删除数据库
二.表
1.创建表
2.查询表
3.修改表名
4.删除表
三.数据
1.单表
(1)向某个表中插入数据
(2)修改某条数据
(3)查询某条数据
(4)删除某条数据
2.多表
(1)交叉连接(笛卡尔积)——cross join
(2)内连接——inner join
(3)外连接
运行环境
mySql:mysql-5.5.15-win32
MySql-Front:版本:5.3(build:4.269)
注意,在该环境下运行,不区分大小写。
一.数据库
1.创建数据库
create database databaseName; //以默认配置创建数据库,数据库名称为databaseName
例子:
create database sqlTest;
执行结果:
若数据库不存在,无明显提示;若数据库sqlTest若数据库sqlTest已存在,执行错误,弹出对话框:database exists。
2.查询数据库
show databases; //显示所有所有数据库
show databases like 'databaseName'; //模糊查询名称与“databaseName”相符合的数据库
例1:
show databases;
执行结果:显示所有数据库名称
例2:
show database like 'sqlTest';
执行结果:若该数据库存在,在database(sqlTest)列显示符合要求的数据库名称;否则该列为空。
3.修改数据库名称
暂未找到可行sql语句。
4.删除数据库
drop database databaseName; //删除名称为databaseName的数据库
例子:
drop database sqlTest;
执行结果:若数据库sqlTest存在,则左侧sqlTest数据库消失;若不存在,弹出数据库不存在提示框。
二.表
1.创建表
//primary key 表示主键,唯一标识表中某一行数据
//不同字段,字段类型可以相同也可以不同
create table tableName( //创建一个名为tableName的表
Field1 Type primary key, // 字段名1 字段类型 标记为主键
Field2 Type, // 字段名2 字段类型
.
.
.
Fieldn Type // 字段名n 字段类型
);
例子:
create table userInformation(
id int(11) primary key AUTO_INCREMENT,
nickname varchar(50),
gender varchar(2)
)default charset=utf8;
//AUTO_INCREMENT表示该字段从1开始自增
//default charset设置该表的默认字符集为utf-8,否则可能无法在表中添加含有汉字的数据
执行结果:若表已存在,弹出提示表已存在;若表不存在,创建表,在对项浏览器中看到表如下所示。
2.查询表
show tables; //显示当前数据库中所有表
show full columns from tableName; //显示表tableName中所有字段及相关信息
例子:
show full columns from userInformation;
执行结果:若该表存在,显示执行结果;若该表不存在,弹出提示框提示该表不存在。
3.修改表名
alter table tableOldName rename to tableNewName; //将表名为tableOldName的表的名称改为tableNewName
例子:
alter table userInformation rename to userInfo;
执行结果:若表不存在,弹出提示框提示表不存在;若表存在,修改表名
4.删除表
drop table tableName; //删除名称为tableName的表
例子:
drop table userInformation;
执行结果:若表存在,删除该表;若表不存在,弹出提示框,未知的表
三.数据
1.单表
(1)向某个表中插入数据
//向表名为tableName的表中插入数据,字段1的值为value1,字段2的值为value2......字段n的值为valuen
insert into tableName
(field1, field2...fieldn)
values
(value1,value2...valuen);
//字段n的值valuen要与创建表时设置的字段n的字段类型相同
//同时向表中添加多条记录
insert into tableName
(field1, field2...fieldn)
values
(value11,value12...value1n),
(value21,value22...value2n),
.
.
.
(valuen1,valuen2...valuenn);
例子:
insert into userInformation
(nickname,gender) values ('十年一觉尘与土','男');
//userInformation有三个字段,id、nickname和gender
//id 字段类型为 int, 是主键,在创建时在字段本应非空,但因为设置了AUTO_INCREMENT,可以不赋值,从1开始自增
//nickname 和 gender 字段类型为 varchar,在创建表时设置默认字符集为UTF-8,因此可以赋汉字
执行结果:若表不存在,弹出表不存在提示框;若表存在,但主键未赋值,弹出主键无默认值提示框;若表存在,主键值已存在,弹出一样的主键提示框;若表存在,主键已赋值且不存在,正常执行命令,向表中插入数据,插入之后在数据浏览器中查看如下图。
(2)修改某条数据
//将表名为tableName的表中符合条件condition的数据的字段1修改为值1,字段2修改为值2......字段n修改 //为值n
update tableName set field1=value1, field2=value2......fieldn=valuen where condition
//在表名为tableName的表上添加字段newFIledName,类型为Type
alter table tableName add column newFiledName Type;
//在表名为tableName的表上删除名为FiledName的字段
alter table tableName drop column filedName;
例子:
//将userInformation表中nickname为‘十年一觉尘与土’的性别改为‘女’
update userInformation set gender='女' where nickname='十年一觉尘与土';
执行结果:若userInformation表不存在,弹出表不存在提示框;在表存在的情况下,无论是否有数据符合条件,都会正常执行,修改后的表的数据在对象浏览器中查询如下。
(3)查询某条数据
//显示表中所有数据
select * from tableName;
//显示表名为tableName的表中符合condition的字段1值,字段2值......字段n值
select field1, field2,,......,fieldn from tableName where condition;
例子:
select nickname,gender from userInformation where id=1;
执行结果:若表不存在,弹出表不存在提示框;若表存在,显示符合条件的数据的指定字段值,若无数据符合条件,第一行显示字段名,第二行字段值皆为<NULL>。
(4)删除某条数据
//将表名为tableName的表中符合条件condition的删除
delete from tableName where condition;
例子:
delete from userInformation where id=1; //删除userInformation中id为1的
select * from userInformation; //显示表userInformation中所有数组的所有字段
执行结果:若表不存在,弹出表不存在提示框;若表存在,执行操作。
2.多表
例子中所使用两张表,表userInformation:
表points:
(1)交叉连接(笛卡尔积)——cross join
//笛卡尔积:设集合A={A,B,C},集合B={0,1},
// A×B={(A,0),(A,1),(B,0),(B,1),(C,0),(C,1)}
// B×A={(0,A),(0,B),(0,C),(1,A),(1,B),(1,C)}
table1,table2,table3......tablen; //select * from table1,table2;
table1 cross join table2 cross join table3.....cross join tablen; //select * from table1 cross join table2;
例子:
select * from points cross join userInformation;
执行结果:若某个表不存在,弹出该表不存在的提示框;若两个表都存在,显示查询结果。
(2)内连接——inner join
//内连接,根据on后面的相同条件在交叉连接中筛选
//等价于 table1,table2......tablen where condition;
table1 inner join table2
on table1.filedx1=table2.fieldy1;
//表起名别名
table1 a inner join table2 b
on a.filedx1=b.fieldy1
and a.fieldx2=b.fieldy2
......
and a.fieldxn=b.fieldyn;
例子:
select * from userInformation a join points b on a.id=b.id;
运行结果:若某个表不存在,弹出某个表不存在提示框;若表都存在,正常运行。
(3)外连接
//外连接,以某个表为基准在另一个表中查询与条件相符的数据,查到后将其拼接显示,若无相符数据,与NUll拼接
//以哪个表为基准,left join 以左边的表为基准,right join 以右边的表为基准
table1 a left join table2 b on condition;
table1 a right join table2 b on condition;
左外连接例子:
select * from userInformation a left join points b on a.id=b.id;
执行结果:若表不存在,弹出提示框显示表不存在;若表都存在,显示结果。
右外连接例子:
select * from userInformation a right join points b on a.id=b.id;
执行结果:若表不存在,弹出提示框显示表不存在;若表都存在,显示结果。