mysql

 

|-----“mysql service”------>后台-------》输入密码后登录(装mysql)

|-------show databases;  显示所有的数据库  系统数据库尽量不要动

|-------create database 数据库名称;  创建一个数据库

|-------use 数据库名称;  切换到具体的数据库中

|--------自创的数据库包含  数据表  视图  存储过程

|------show tables;显示当前数据库的数据表

|------创建数据表  语法


create table 表名

(

         id  int,

         namevarchar(20),

         ageint

)

|-----查看数据表的结构

desc数据表名称

|------客户端  SQLyog 连接后台(mysql)

|-----mysql端口号 :3306

 

|------1:连接池  数据库(服务器 1台)  多个用户连接一个数据库(连接池 jndic3p0)

 

 

|------2: 数据库优化事情  分区  100w数据

 

|-----3:事务:回滚 保证数据安全!

 

|-----4:缓存:只要数据不更改情况下,把取出的数据暂时存放到内存中,称这种方式缓存!

 

|------5:日志:只要任何用户操作数据库,那么日志都会记录下来!

|-----小结:如果delete和update不带条件的话,数据表所有的数据都会更改或删除!

#删除数据

#delete from 表名 [where id=];

DELETE FROM info WHERE id=1;


#修改数据

#update 表名 set 字段=值 where 条件

UPDATEinfo SET NAME='腊鸡' WHERE id=3;


|------自动增长

CREATE TABLE student

(

         sidINT PRIMARY KEY AUTO_INCREMENT,

         snameVARCHAR(200)

)

#添加:自动增长列?

INSERT INTO student(sname) VALUES('aaa');

INSERT INTO student(sname) VALUES('ccc');

INSERT INTO student(sname) VALUES('ddd');

SELECT * FROM student;

 

DELETE FROM student;

 

INSERT INTO student(sname) VALUES('小明');

 

#删除数据表2 truncate 让自增重新开始

TRUNCATETABLE student;

|------char varchar 区别?

char:固定 char(20) 只占用了2个,剩下不会回收!

varchar:可变  varchar(20) 只占用了2个,剩下18,mysql会回收!

什么的情况用char的或varchar?

存储的性别可以用char(2)

地址 varchar(20)

哪些字段是会经常发生改变,就用varchar(),否则可用char

 

|-----约束 : mysql中没有检查约束     可以利用set或enum代替检查约束

|------对原有的数据表做一些更改!

CREATE TABLE student4

(

         sidINT PRIMARY KEY,

         snameVARCHAR(200)

)

SELECT * FROM stu;

#修改数据表的名称

ALTER TABLE student4 RENAME stu;

#对原有的数据表添加字段

ALTER TABLE stu ADD sage DATETIME;

#对原有的字段 更改

ALTER TABLE stu CHANGE sname NAMEVARCHAR(20);

#对原有的字段进行删除

ALTERTABLE stu DROP sage;


基本案例:

数据表结构修改

基本语法:

1.      增加列语法:alter table 表名 add 列名  类型(长度) 约束;

2.      修改现有的列类型:  主要是修改长度和约束

语法:alter table 表名 modify 列名  类型(长度) 约束;

修改现有的列名:语法  alter  table 表名 change  旧列名  新列名 类型(长度) 约束;

 

删除现有列:  语法  alter table  表名 drop  列名;

 

修改表名:  rename  table  旧表名  to  新表名

 

修改表的字符集:alter  table  user    character  set uft8;

 

 Desc  表名;查看表结构

 Showtables  查看当前数据库所有存在的表

 Show  create table 表名:查看建表语句和字符集


1.      在user2表里面新增一个address列

a)       Alter table  user2  add address   varchar(100);

修改address列,把长度变为50,且不能为空

Alter  table user2  modify  address varchar(50)  not  null;

删除address列

Alter  table user2  drop  address;

所有数据表结构的操作语句都是DDL(数据库定义语言)

 

数据库表中记录的CRUD操作

1.      插入数据

向数据表中插入记录:

语法: insert  into  表名(列名,列名,列名……)  values(值,值,值…….) ; 为数据表的每列         进行赋值

注意事项:

1.插入值   类型必须和列类型匹配

2.值长度不能超过列定义长度

3.值的顺序和列顺序对应

4.字符串和日期类型   必须加上单引号

5.插入空值可以写NULL 


在user2表中插入数据

语法1:insert  into user2 (id,name,gender……)values(……..);

语法2:省略所有列名,但是后面值必须要和表中所有列进行匹配,按照表中的数据

insert into  user2 values(………);

语法3:指定插入的列,可以为null的可以直接忽略掉,不能为null的必须给值

Insert  into (列名) values(…..);


插入一条中文记录

ERROR1366(HY000):Incorrect string  value :’\XC0/XF6’for column ‘name’ at row 1

因为:系统的客户端使用的是gbk编码,而mysql的client使用的是utf8编码

解决插入中文数据乱码问题:

第一种方式:当前窗口临时修改编码  set name gbk; 如果窗口关闭就会失败。

第二种方式:  修改配置文件    mysql.ini文件

客户端编码设置



服务器端配置:


修改mysql客户端字符集[mysql]  default-character-set=gbk



更新语句:

使用update语句修改表中的数据

语法:update 表名 set 列名=值,列名=值=where 条件语句;

注意:如果没有where条件语句,默认修改所有行的数据

Update:语法可以用新值更新原有表中的各列数据。

Set子句指要修改哪些列和要给予那些值

Where子句指定更新那些行

案例:

1.      将所有人员的薪水修改为2000元.==è Update user2  setsalary=2000;

2.      将姓名为’张三’的员工薪水修改为1000元===è

语法:update user2 set salary=1000 where name=’张三’;

将姓名为’张三’的员工薪水修改为12000元,job修改为’架构师’

Update user2 set salary=12000,job=’架构师’ wherename=’张三’;

将张三的薪水在原有的基础上增加5000元

         Update  user2 set  salary=salary+5000  where name=’张三’;



删除语句:

Delete from  表名  where  条件

注意事项:

1.      如果不使用where子句,将删除表中所有数据

2.      delete语句不能删除某一列的值

3.      使用delete语句仅删除数据记录,不删除表本身。如果要删除表,使用drop table 语句

4.      删除表中数据也可以使用 truncate table 语句,它和telete有所不同,参考mysql API

案例:

删除表中的name=’张三’的记录

删除表中的所有记录

使用delete和TRUNCATE同时做实验。

Delete删除数据,是逐行删除的。

TRUNCATE 删除数据,先把表直接删除掉,然后重新创建表。效率:高于delete

TRUNCATE是属于DDL,delete属于DML=======事物管理只能对DML有效。

Delete删除的数据可以回滚。



查询语句

语法:select [distinct] * |列名,列名,……from   表名;

Select:指定查询那些列的数据。                                                 

* 号代表查询所有列

From  指定查询那张表

Distinct  可选,显示结果,可以去掉重复的记录(必须数据是完全一样的)

案例:创建一张学生表

Create table student(

Id int primary key auto_increment,

Name varchar(20) not null,

Chinese  double,

Math double,

English double

);

 

多条插入数据

Insert into student values(null,’张三’,85,75,75),(null,’李四’,85,85,95),(null,’王五’,100,85,95);

1.      查询表中所有学生的信息

Select * from student;

2.      查询表中所有学生的姓名和对应的英语成绩

Select name,english from student;

3.      过滤表中重复的数据

Select  distinct  english from student;






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

brid_fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值