什么是数据库?

1、数据库:database(DB),按照数据结构来组织、存储和管理数据的仓库;
2、数据库:高效的存储和处理数据的介质(介质有两种:磁盘和内存)
3、数据库系统:database system(DBS)
4、数据库管理系统:database management system(DBMS0)数据的增删查改

如何用命令提示符访问mysql服务器

开始使用:net start +服务器名字
停止使用:net stop +服务器名字

如何用命令指示符访问到数据库;

1、mysql -h -P3306 -uroot -p
解释:
-h:(Host 主机名(IP地址))
-P:(数据库端口号一般情况下都是3306)
-u:(登陆的账户名(root(默认)、权限(增删查改)也是最大))
-p:(密码)

本机登陆,也可以直接使用mysql -uroot -p

2、查看本机电脑的数据库有哪些 //show databases;



基本操作



库操作:

1、创建数据库:create database 库名字 ; 字符集设定:charset具体的字符集;
例如:create database xx charset=utf8/gbk;
2、删除数据库:drop database 库名字;(注意!删除数据库时,需要备份数据,因为这个数据库删除一般情况下是找不回来的)
3、使用数据库:use database(注意这是数据库语句中唯一一个可以不加 ; 结尾也能执行的语句)



表操作

查找所有表:show tables;
:(表与字段是密不可分的)

1、新增数据表:
create table (if not exists) 表名(
字段名字1:字段类型(100),
字段名字2:字段类型(100)
);
或者是带有字符设置的表创建
create table (if not exists) 表名(
字段名字1:字段类型(100),
字段名字2:字段类型(100)
)charset=utf8/gbk;

2、查找表中数据:
(1)、查询全部: select * from 表名;
(2)、部分查询:
select 字段名字1或者2 from 表名 where 字段名字2或者1=“”;
select count(字段名字)from 表名;
select 字段名字 from 表名;
例如:
select name from user where password=“123”;

(3)联查语句:
1)、select *(可以显示全部内容,也可显示部分内容,直接输入字段名称就可以了,注意字段之间需要有逗号隔开) from 表名,表名,表名 ~~~(这里的表名可加多个,表名之间也需要用逗号隔开) where 表名1.字段1=表名2.字段1 and 表名2.字段2=表名3.字段2;
例如:select * from teaching,teacher,course where teaching.cno=course.cno and teacher.tno=teaching.tno;
2)、内连接查询:等值连接和内连接查询到的都是两张表的交集数据
select * from 表名A join 表名B on 表名A.字段名=表名B.字段名 where 判断语句。
外连接查询的是A的全部和B的交集数据,最后显示的结果是A表与B表的交集数据;
select * from 表名A(left/right) join 表名B on 表名A.字段名=表名B.字段名(关联关系) where 判断语句。(left/right代表的是左右连接,以此来查询左表的或右表的所有数据与右表或左表部分满足的数据);
左连接:select *from A left join B on A.id=B.cid;查询A表全部数据,B表取交集,右链接相反;

连接使用示例:select * from admin_rule join admin_info on admin_rule.adminid=admin_info.id LEFT JOIN rule on admin_rule.ruleid=rule.id;

(4)模糊查询:
1)、like运算符:通配符:“%”和“”,
“%”可以匹配0到任一字符
”仅代表一个字符
例如:
select name,phone from driver where name like ‘_张%’
2)、in运算符:也称“成员条件运算符”。判断其值是否在一个指定的数据集合之内
例如:
select * from user where age in(12,30)(找到年龄为12和30的人员信息)
4)、between…and运算符:选取的是介于两者之间的数据,(日期或数字取值包含边界值)
例如:
select * from user where age between 12 and 30;
3)、总结:
如果需要同时查询多张表的数据使用关联查询:
关联查询包括:等值链接,内连接和外连接;
等值链接和内连接查询的是两个表的交集数据, 推荐使用内连接;
如果需要查询一张表的全部和另外一张表的交集时 使用外连接,一般推荐使用左连接,将需要查询所有信息的表放在join左边即可。
4)、查询去重复值
select distinct 字段名 from 表名;
5)、查询排序
select * form 表名 order by 字段名 desc;
6)、分组查询
select 字段名 from 表名 判断条件 group by(根据哪个字段进行分组)字段名 ;
一般与sum、max、avg、count连用,
例子:select dept,sum(salary) from tmp GROUP BY dept

6)、时间加减
日期相加:
date_add(‘某个日期时间’,interval 1 时间种类名)
例子:select date_add(@dt, interval 1 year); //加1年
select adddate(now(),1); – 加1天
日期相减:
select subdate(now(),1); – 减1天
datediff(date1,date2)
timediff(time1,time2

3、1、数据增添:
insert into 表名(字段名字1,字段名字2) values (“” “”);
insert into 表名(字段名字1)values(“”);
insert into 表名(字段名字2)values(“”);

3、2字段增添:
alter table 表名 add 字段名 字段类型;
alter table 表名 add 字段名 字段类型 first/after 字段名;

4、1数据修改
update 表名 set name=“”,password=“” where name=“”and password=“”;
set 后接的是所改的内容,where 后所接的是表中需要改的地方;
4、2字段大小修改
alter table 表名 alter 字段名 字段类型(n);
4、3修改表名:
rename table 原名 to 新名;
4、4修改字段
alter table 表名 change 原名 新名 新类型;

5、1 删除表中部分数据:
delete from user where name=“”;

5、2删除字段操作:
alter table 表名 drop 字段名;

6、删除表中所有数据:
delete from user;

7、删除表操作:
drop table 表名;(注意这个操作要小心,使用这个操作表和表内内容都是找不回来的)

8、查询字段名字类型:
desc 表名;

9、查看表信息:
show create table 表名;

10、清空表中的数据,将表还原到最初刚建立时的状态
truncate 表名;

11、阻止时间戳的自动更新–使用修改字段类型的语句

alter table product change created created timestamp not null default current_timestamp;

12、打开时间戳的自动更新–使用修改字段类型的语句

alter table product change created created timestamp not null default current_timestamp on update current_timestamp;
13、sql中的#与$的区别
(1)在sql语句中,如果要接收传递过来的变量的值的话,必须使用#。因为使用#是通过PreparedStement接口来操作,可以防止sql注入,并且在多次执行sql语句时可以提高效率。

(2)mysql数据库服务器硬件要求 mysql数据库服务器名称_mysql,比如$方式一般用于传入数据库对象(如传入表名)。

简单易混淆的小知识:

空窜与空指针的区别:

空窜:java中会有一个常量池,可以有空的类型;但是不能打印空对象,因为对象只能new出来。

空指针:通过关键词new出来的东西是保存在堆栈空间的,然而使用str=“1”是保存在常量池里面的。

Object与String、StringBuffer、StringBuilder:

mysql数据库服务器硬件要求 mysql数据库服务器名称_字段_02

string,StringBuilder,StringBuffer的区别:

String:字符常量,不可变量,适用于少量的字符串操作的情况
	StringBuffer:字符串变量,可变类,线程安全,适用于多线程下在字符缓冲区进行大量操作的情况
	StringBuilder:字符串变量,可变类,线程不安全,适用于单线程下在字符缓冲区进行大量操作的情况
	
	执行速度:
	String < StringBuffer < StringBuildrr

decimal(4,1)4位数,一个小数。
order是关键字,order by用于排序