day05 mysql基础

mysql:

    本质是一个文件,按照一定的格式存储数据,可以对数据进行操作。

历史:

层次结构模型 数据库管理系统

IMS

网状结构模型 数据库管理系统

IDS

关系型结构 数据库管理系统

后关系型(对象关系型)数据库管理系统

NoSql(往死里学,高薪)

        关系型结构数据库管理系统


oracle    oracle   不开源收费  跨平台   非互联网大型公司  用的比较多

DB2       IBM      不开源收费  跨平台

Sybase  Sybase   不开源收费  跨平台

sqlserver   微软   不开源收费  不跨平台

mysql    oracle   开源 不同版本收费 跨平台  互联网公司用的比较多


RDBMS:Relationship DataBaseManagementSystem

DataBase:数据库

table:

数据库的安装与卸载:

卸载

(1):记住安装路径

服务的启动与关闭:

(1)计算机--右键管理--服务和应用程序-服务 -右键停止/启动

        (2)net stop mysql

                net start mysql

   登录mysql:

(1)mysql -uroot -proot

(2)mysql --user=root --password=root

(3)C:\Users\Administrator>mysql -uroot -p

                  Enter password: ****

 (4)用mysql自带的命令窗口登录

 (5)mysql --user=root --password=1234 --host=127.0.0.1 --port=3306

   退出:exit

如果密码忘了:

重置密码: 

                        1.打开窗口并关掉mysql的服务

2.mysqld --console --skip-grant-tables 

3.不要关闭窗口重新打开新窗口

mysql -uroot (回车)

use mysql;

update user set password=password('新密码') where user='root';

update user set password=password('root') where user='root';

4.关闭两个窗口

5.打开窗口 启动服务  新密码登陆

SQL介绍:

专门针对数据库的语言,对数据库进行CRUD

c:create

r:retrieve

u:update

d:delete

SQL的分类:

DDL:Database Definition Language(数据库定义语言)

定义(创建)相应的数据库 或者表

DML:Database Management Language(数据管理语言)

增删改

DQL:Database Query Language(数据库查询语言)

查询操作

DCL:Database Control Language(数据库控制语言)

权限管理

数据库的定义语言(语句结束加分号):

create(创建,定义)  alter(修改) drop(删除)

创建数据库:

(2)create database da2 character set utf8;

(3)create database 库的名字  character set utf8 collate utf8_general_ci ;

库的编码:

查看库的编码:

查看可以设置的编码格式:show character set;

                            (3) create database 库的名字  character set utf8 collate utf8_general_ci ;

        修改数据库的编码: alter database 库名 character set 编码

建表:

创建表:最后一行不可以加逗号,其他必须加

查看当前所在的库:

                            select database();

修改标的名称:alter table 表名  rename to 新表名;

查看当前表的结构:desc 表名;

添加字段:alter table 表名 add 字段名 类型

修改字段:alter  table  表名  change 旧字段的名字  新字段的名字  类型; 

修改字段的类型:alter table 表名  modify  字段的名字    新类型 ;

删除字段: alter table  表名  drop  字段名;

数据类型:

整型:         

                 int    相当于java中的int  

                 tinyint   相当于java中 byte

                 smallint   相当于java中的short

                 bigint     相当于java中的long

boolean:0表示false ,非零表示true  

浮点:

                        浮点(4,2); 长度是四  小数点后占两位。

        float  double  decimal (金钱)  

日期类型:        

                        date 表示年月日

time  时分秒

datetime  年月日时分秒 

timestamp  时间戳  年月日时分秒  

datetime与tiemstamp的区别:

                                                    (1) datetime 范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。

                                      timestamp范围:范围是'1970-01-01 00:00:00'到2037年 

      (2) datetime 默认为null 

                                                                timestamp 默认为当前时间

字符串:

必须指定长度

   char与varchar的区别:

char:长度固定不变(效率高)

varchar:长度可以改变

text:大文本        

                                  TINYTEXT  大长度为255(2(8)–1)字符的TEXT列。

 TEXT[(M)] 最大长度为65,535(2(16)–1)字符的TEXT列。

 MEDIUMTEXT 最大长度为16,777,215(2(24)–1)字符的TEXT列。

                                  LONGTEXT  4,294,967,295或4GB(2(32)–1)字符的TEXT列

二进制BLOB:                

                                   TINYBLOB 最大长度为255(2(8)–1)字节的BLOB列。

  BLOB[(M)]最大长度为65,535(2(16)–1)字节的BLOB列

  MEDIUMBLOB最大长度为16,777,215(2(24)–1)字节的BLOB列。

   LONGBLOB最大长度为4,294,967,295或4GB(2(32)–1)字节的BLOB列

数据库管理语言(delete update insert):

      insert:

                (1)insert  into  表名  values  (value1,。。。。。valuen);

                (2)  insert   into  表名  (字段名,。。。字段n) values (value1,。。。。。valuen);

                 如果插入数据直插入其中几列的时候,要写字段名,但只用写要插入的字段名即可,后面的value值与前面的字段名对应即可。

        update:

                 update  表名  set  字段名 = 值 (更新所有的数据)

                 update  表名  set  username = 'sss' where  id=xx; (更新满足条件的)

        delete: 

                delete  from   表名  ;  (删除所有的数据)

                delete  from   表名  where  条件 ; (删除满足条件的数据)

truncate 与delete的区别:

                    (1)delete命令删除的数据将存储在系统回滚段中

                        truncate命令删除的数据是不可以恢复的

                (2)truncate之后的自增字段从头开始计数

                        delete的仍保留原来的最大数值

中文问题:

(1)用sql修改编码

           (查看相应的编码格式) show variables like '%char%';

        set character_set_client = gbk;

                set character_set_results = gbk;

(2)修改配置文件      

                 [client]

                port=3306

                 [mysql]

                default-character-set=gbk

数据库查询语言:

1、as:取别名 (as可以省略): select course as english from tal;

2、去重复:distinct     : select distinct course from stu; 

表达式的学习:

not , or  ,in , between  and ,

       select * from stu where score in (70,81,59);

        select *  from stu where not course='php';

like 与 通配符的使用:

           _:匹配一个字符。

           %:多个字符进行匹配

        select * from stu where name like '%i%';

        select *  from stu where name like  '_i__';

null不能用等号操作。要用is来操作。

         select *  from stu where score is null;

         select * from stu where score is not null;

ifnull(字段,0) (如果是字段是null的话 就用0来处理

          select id ,name ,course,ifnull(score,0) from stu;

聚集函数(聚集 函数不对null进行操作):

            对一列数据进行操作。  

                count()//统计

        sum()//求和

        max() //最大

        min()//最小

        avg()//平均

用ifnull处理空值

select min(ifnull(score,0)) from stu;

round(字段,小数点的位数);  

                    (别名)

 select  round( avg(ifnull(score,0)),2) 平均成绩 from stu;

                平均成绩是别名

having与where的区别:

                一般 where用于具体的某条件 ,having后面跟 函数。

                 select course,sum(score) from stu group by course having sum(score)>100; 

select *  from stu limit 开始的索引值,查询出几条数据; (*******)

mysql的约束():

            主键(唯一非空):primary key

            唯一(可以为空):unique

            非空:not null

            默认:default

  创建约束的三种方法:

方法一:

create table p1(
	id  int primary key,
	username varchar(32)
		);

方法二:

create table p2(
	 id  int,
	 username varchar(32),
	 primary key(id)
	);

方法三:

create table p3(
	id  int,
	username varchar(32)
		);
				
alter table p3 add primary key (id);


default 默认约束 (默认约束)  添加默认值。

            create  table  d( 

  id int ,

  username  varchar(32)  default '鸡蛋' 

);


关键字的书写顺序: select,from,where,group by,having,order by;    





你可能感兴趣的:(day05 mysql基础)