sql数据库示例适合初学者.docx
《sql数据库示例适合初学者.docx》由会员分享,可在线阅读,更多相关《sql数据库示例适合初学者.docx(21页珍藏版)》请在冰豆网上搜索。
![sql数据库示例适合初学者.docx](https://file1.bdocx.com/fileroot1/2022-10/11/cb3f7093-0ea1-4f8e-8029-3915bc12dd09/cb3f7093-0ea1-4f8e-8029-3915bc12dd091.gif)
sql数据库示例适合初学者
一、数据库概述
数据库(DataBase,DB):
指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。
(文件系统)
数据库管理系统(DataBaseManagementSystem,DBMS):
指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。
用户通过数据库管理系统访问数据库中的数据。
数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。
数据库:
存储、维护和管理数据的集合。
二、数据库的安装及配置
*安装
*参照图解
*一路下一步
*配置
*参照图解
*到选择字符集时停
登录Mysql:
mysql-uroot-pabc
*卸载
1.停止mysql服务netstopmysql启动mysql服务netstartmysql
2.卸载mysql
3.找到mysql安装目录下的my.inidatadir="C:
/ProgramData/MySQL/MySQLServer5.5/Data/"
*修改密码
运行cmd
*安装成功了打开cmd-->mysql-uroot-p你的密码
*修改mysqlroot用户密码
1)停止mysql服务运行输入services.msc停止mysql服务
或者cmd-->netstopmysql
2)在cmd下输入mysqld--skip-grant-tables启动服务器光标不动(不要关闭该窗口)
3)新打开cmd输入mysql-uroot-p不需要密码
usemysql;
updateusersetpassword=password('abc')WHEREUser='root';
4)关闭两个cmd窗口在任务管理器结束mysqld进程
5)在服务管理页面重启mysql服务
密码修改完成
数据库中一行记录及对象之间的关系。
列:
字段
行:
一条记录(实体)
publicclassUser{
privateintid;
privateStringname;
privateintage;
}
三、sql概述
SQL:
StructureQueryLanguage。
(结构化查询语言)
SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。
各数据库厂商都支持ISO的SQL标准。
普通话
各数据库厂商在标准的基础上做了自己的扩展。
方言
四、Sql的分类
DDL**(DataDefinitionLanguage):
数据定义语言,用来定义数据库对象:
库、表、列等;CREATE、ALTER、DROP
DML***(DataManipulationLanguage):
数据操作语言,用来定义数据库记录(数据);INSERT、UPDATE、DELETE
DCL(DataControlLanguage):
数据控制语言,用来定义访问权限和安全级别;
DQL*****(DataQueryLanguage):
数据查询语言,用来查询记录(数据)。
SELECT
*注意:
sql语句以;结尾
4.1DDL:
操作数据库、表、列等
使用的关键字:
CREATE、ALTER、DROP
*4.1.1操作数据库
创建
createdatabasemydb1;
Createdatabasemydb2charactersetgbk;
Createdatabasemydb3charactersetgbkCOLLATEgbk_chinese_ci;
查询
查看当前数据库服务器中的所有数据库
showdatabases;
查看前面创建的mydb2数据库的定义信息
Showcreatedatabasemydb2;
删除前面创建的mydb3数据库
Dropdatabasemydb3;
修改
查看服务器中的数据库,并把mydb2的字符集修改为utf8;
alterdatabasemydb2charactersetutf8;
删除
dropdatabasemydb3;
*其他:
查看当前使用的数据库
selectdatabase();
切换数据库
usemydb2;
*4.1.2操作数据表
*语法:
createtable表名(
字段1字段类型,
字段2字段类型,
...
字段n字段类型
);
*常用数据类型:
int:
整型
double:
浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
char:
固定长度字符串类型;char(10)'abc'
varchar:
可变长度字符串类型;varchar(10)'abc'
text:
字符串类型;
blob:
字节类型;
date:
日期类型,格式为:
yyyy-MM-dd;
time:
时间类型,格式为:
hh:
mm:
ss
timestamp:
时间戳类型yyyy-MM-ddhh:
mm:
ss会自动赋值
datetime:
日期时间类型yyyy-MM-ddhh:
mm:
ss
当前数据库中的所有表
SHOWTABLES;
查看表的字段信息
DESCemployee;
在上面员工表的基本上增加一个image列。
ALTERTABLEemployeeADDimageblob;
修改job列,使其长度为60。
ALTERTABLEemployeeMODIFYjobvarchar(60);
删除image列,一次只能删一列。
ALTERTABLEemployeeDROPimage;
表名改为user。
RENAMETABLEemployeeTOuser;
查看表格的创建细节
SHOWCREATETABLEuser;
修改表的字符集为gbk
ALTERTABLEuserCHARACTERSETgbk;
列名name修改为username
ALTERTABLEuserCHANGEnameusernamevarchar(100);
删除表
DROPTABLEuser;
4.2DML操作(重要)
查询表中的所有数据
SELECT*FROM表名;
DML是对表中的数据进行增、删、改的操作。
不要及DDL混淆了。
INSERT、UPDATE、DELETE
小知识:
在mysql中,字符串类型和日期类型都要用单引号括起来。
'tom''2015-09-04'
空值:
null
4.2.1插入操作:
INSERT:
语法:
INSERTINTO表名(列名1,列名2...)VALUES(列值1,列值2...);
注意:
列名及列值的类型、个数、顺序要一一对应。
可以把列名当做java中的形参,把列值当做实参。
值不要超出列定义的长度。
如果插入空值,请使用null
插入的日期和字符一样,都使用引号括起来。
练习:
createtableemp(
idint,
namevarchar(100),
gendervarchar(10),
birthdaydate,
salaryfloat(10,2),
entry_datedate,
resumetext
);
INSERTINTOemp(id,name,gender,birthday,salary,entry_date,resume)
VALUES(1,'zhangsan','female','1990-5-10',10000,'2015-5-5-','goodgirl');
INSERTINTOemp(id,name,gender,birthday,salary,entry_date,resume)
VALUES(2,'lisi','male','1995-5-10',10000,'2015-5-5','goodboy');
INSERTINTOemp(id,name,gender,birthday,salary,entry_date,resume)
VALUES(3,'wangwu','male','1995-5-10',10000,'2015-5-5','goodboy');
批量插入:
INSERTINTOempVALUES
(4,'zs','m','2015-09-01',10000,'2015-09-01',NULL),
(5,'li','m','2015-09-01',10000,'2015-09-01',NULL),
(6,'ww','m','2015-09-01',10000,'2015-09-01',NULL);
4.2.2修改操作UPDATE:
语法:
UPDATE表名SET列名1=列值1,列名2=列值2。
。
。
WHERE列名=值
练习:
将所有员工薪水修改为5000元。
UPDATEempSETsalary=5000
将姓名为’zs’的员工薪水修改为3000元。
UPDATEempSETsalary=3000WHEREname=’zhangsan’;
将姓名为’aaa’的员工薪水修改为4000元,job改为ccc。
UPDATEempSETsalary=4000,gender='female'WHEREname='lisi';
将wu的薪水在原有基础上增加1000元。
UPDATEempSETsalary=salary+1000WHEREgender='male';
4.2.3删除操作DELETE:
语法:
DELETEFROM表名【WHERE列名=值】
练习:
删除表中名称为’zs’的记录。
DELETEFROMempWHEREname=‘zs’;
删除表中所有记录。
DELETEFROMemp;
使用truncate删除表中记录。
TRUNCATETABLEemp;
DELETE删除表中的数据,表结构还在;删除后的数据可以找回
TRUNCATE删除是把表直接DROP掉,然后再创建一个同样的新表。
删除的数据不能找回。
执行速度比DELETE快。
4.3DQL操作
DQL数据查询语言(重要)
数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。
查询返回的结果集是一张虚拟表。
查询关键字:
SELECT
语法:
SELECT列名FROM表名
【WHERE-->GROUPBY-->HAVING-->ORDERBY】
语法:
SELECTselection_list/*要查询的列名称*/
FROMtable_list/*要查询的表名称*/
WHEREcondition/*行条件*/
GROUPBYgrouping_columns/*对结果分组*/
HAVIN