但行好事
莫论前程❤

Mysql语法小记

查看当前用户
select current_user()
# 注释
# ------------------------
# ---命令行连接mysql-------

# 启动mysql服务器
net start mysql

# 关闭mysql服务器
net stop mysql 

# 进入
mysql -h 主机地址 -u 用户名 -p 用户密码

# 退出
exit

# 显示mysql当前状态包括version的各种信息
status

# mysql用户管理
#=======================================

# 修改密码: 首先在DOS下进入mysql安装路径的bin目录下,然后键入一下命令
mysqladmin -uroot -p123 password 456; # 将密码123改为456

# 增加用户
# 格式: grant 权限 on 数据库.* to 用户名@登录主机 identified by '密码'

如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

#all privileges 所有权限
grant all privileges on wpj1105.* to sunxiao@localhost identified by '123';   

#----------------------------
#-----MySql数据库操作基础-----

# 显示数据库
show databases;

# 判断是否存在数据库database_1.有的话先删除
drop database if exists database_1;

# 创建表
create table student(
    id int auto_increment primary key,
    name varchar(50),
    sex varchar(20),
    date varchar(50),
    content varchar(100)
)default charset=utf8;

# 删除表
drop table student;

# 查看表的结构
describe student;
# 可以简写为
desc student;

# 插入数据
insert into student values(null,'aa','男','1988-10-2','......');
insert into student values(null,'bb','女','1889-03-6','......');
insert into student values(null,'cc','男','1889-08-8','......');
insert into student values(null,'dd','女','1889-12-8','......');
insert into student values(null,'ee','女','1889-09-6','......');
insert into student values(null,'ff','null','1889-09-6','......');
insert into c (id,name,sex,age,sno) values (null,'涛哥','男',68,1);

# 查询表中的数据
select * from student;
select id,name from student;

# 修改某一条数据

update student set sex='男' where id=4;
update c set name='花花',age=21,sex='女' where id=2

# 删除数据
delete from student where id = 1;

# and 且
select * from student where date > '1999-01-01' and date < '1999-01-00';

# or 或
select * from student where date<'1988-11-2' or date>'1988-12-1';

#between
select * from student where date between '1988-1-2' and '1988-12-1';

# in 查询指定集合内的数据
select * from student where id in (1,3,5);

# 排序asc升序,desc降序
select * from student order by id asc;

#分组查询 # 聚合函数   分组是为了聚合 一个分组只显示一条数据,想都显示则使用group_concat
select max(id),name,sex from student group by sex;

select min(date) from student;

select avg(id) as '求平均' from student;

# 统计表中总数
select count(*) from student;

# 统计表中性别总数 若有一条数据的性别为空的话,就不予以统计.
select count(sex) from student;

select sum(id) from student;

# 查询第i条到第j条的数据(不包括第i条)
select * from student limit 2,5; # 显示3到5条数据

# 巩固练习
create table c(
    id int primary key auto_increment,
    name varchar(50) not null,
    sex varchar(50) ,   #DEFAULT '男' ,
    age int unsigned, #不能为负值(如为负值 则默认为0)
    sno int unique    #不可重复
);

drop table c;
desc c;

#修改表的名字
#格式:alter table tbl_name rename to new_name
alter table student_old_name rename to student_new_name;

#表结构修改
create table test
(
    id int not null auto_increment primary key,  #设定主键
    name varchar(20) not null default 'NoName',  #设定默认值
    department_id int not null,
    position_id int not null,
    unique (department_id,position_id)          #设定唯一值
);

# 向表中增加一个字段(列)
#格式:alter table tablename add columnname type;/alter table tablename add(columnname type);
alter table test add  columnname varchar(20);

#修改表中某个字段的名字
alter table tablename change columnname newcolumnname type;  #修改一个表的字段名
alter table test change name uname varchar(50);

select * from test;

# 巩固练习
# 表position 增加列test
alter table position add(test char(10));
# 表position 修改列test
alter table position modify test char(20) not null;
# 表position 修改列test 默认值
alter table position alter test set default 'system';
# 表position 去掉test 默认值
alter table position alter test drop default;
# 表position 去掉列test
alter table position drop column test;
#表depart_pos 删除主键
alter table depart_pos drop primary key;
#表depart_pos 增加主键
alter table depart_pos add primary key PK_depart_pos
(department_id,position_id);

#用文本方式将数据装入数据库表中(例如D:/mysql.txt)
load data local infile "D:/mysql.txt" into table MYTABLE;

#导入.sql文件命令(例如D:/mysql.sql)
source d:/mysql.sql;  #或者  /. d:/mysql.sql;
赞(1) 打赏
未经允许不得转载:刘鹏博客 » Mysql语法小记
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏