您的当前位置:首页正文

SQL问题

2021-09-13 来源:客趣旅游网
配置安装流程 具体安装如下:

1、把 mysql-5.7.19-winx64.zip 压缩文件解压到 C:\\MySQL\\ 目录下; 2、在 C:\\MySQL\\ 目录下新建 my.ini 配置文件;

3、用文本编辑器或其他编辑器打开 my.ini 文件,把以下代码复制粘贴进去,保存退出;

?123456789101112131415161718192021222324 #代码开始 [Client] #设置3306端口

port = 3306 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=C:\\mysql # 设置

mysql数据库的数据的存放目录

datadir=C:\\mysql\\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] # 设置mysql客户端默认字符集

default-character-set=utf8 #代码结束 4、配置环境变量;

4.1、新建系统变量 MYSQL_HOME ,并配置变量值为 C:\\mysql ;

4.2、编辑系统变量 Path ,将 ;%MYSQL_HOME%\\bin 添加到 Path 变量值后面。

5、以管理员身份运行命令提示符cmd(一定要用管理员身份运行,不然权限不够);

5.1、使用dos指令,进入C:\\mysql 目录,运行以下指令

?123 mysqld --defaults-file=my.ini --initialize-insecure mysqld --installnet start mysql

5.2、设置 mysql 的 root 密码,运行以下指令 ?12345

Uodateset 执行出错时,运行setSQL_SAFE-UPDATE=0;

解压版没有像安装版 那样指定目录,所以需要更改注册表:

HKEY_LOCAL_MACHINE-SYSTEM-CurrentControlSet-services-mysql(服务名)-ImagePath

更改为:\"C:\\Program Files\\MySQL\\bin\\mysqld\" --defaults-file=\"C:\\Program Files\\MySQL\\my.ini\" mysql

ySQL命令行导出数据库:

1,进入MySQL目录下的bin文件夹:cdMySQL中到bin文件夹的目录 如我输入的命令行:cdC:\\ProgramFiles\\MySQL\\MySQLServer 4.1\\bin (或者直接将windows的环境变量path中添加该目录)

2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

如我输入的命令行:mysqldump -uroot -pnews>news.sql (输入后会让你输入进入MySQL的密码)

(如果导出单张表的话在数据库名后面输入表名即可) 3、会看到文件news.sql自动生成到bin文件下 命令行导入数据库:

1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步

3,进入MySQL:mysql -u 用户名 -p

如我输入的命令行:mysql -uroot -p (输入同样后会让你输入MySQL的密码)

4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库

5,输入:mysql>use 目标数据库名 如我输入的命令行:mysql>usenews;

6,导入文件:mysql>source 导入的文件名; 如我输入的命令行:mysql>sourcenews.sql;

MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。 1.Win32下MySQL的备份与还原 1.1 备份

开始菜单 | 运行 | cmd |利用“cd \\ProgramFiles\\MySQL\\MySQLServer 5.0\\bin”命令进入bin文件夹 | 利用“mysqldump -u 用户名 -pdatabasename>exportfilename”导出数据库到文件, 如mysqldump -uroot -pvoice>voice.sql,然后输入密码即可开始导出。 1.2 还原

进入MySQLCommandLineClient,输入密码,进入到“mysql>”,输入命令\"showdatabases;\",

回车,看看有些什么数据库;建立你要还原的数据库,输入\"createdatabasevoice;\",回车;

切换到刚建立的数据库,输入\"usevoice;\",回车;导入数据,输入\"sourcevoice.sql;\",回车,

开始导入,再次出现\"mysql>\"并且没有提示错误即还原成功。

2.Linux下MySQL的备份与还原 2.1 备份

[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)

[root@localhostmysql]# mysqldump -uroot -pvoice>voice.sql,输入密码即可。 2.2 还原 法一:

[root@localhost ~]# mysql -uroot -p 回车,输入密码,进入MySQL的控制台\"mysql>\",同1.2还原。 法二:

[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)

[root@localhostmysql]# mysql -uroot -pvoiceMysql 中不用top 用limit代替

Select *from 表名 limit number;select * fromtablelimitm,n 从m开始,取n条

复制备份表格 MYSQL不支持:

Select * Intonew_table_namefromold_table_name;

替代方法:

Createtablenew_table_name (Select * fromold_table_name);

##方法一DELETEFROMperson ##方法二TRUNCATETABLEperson

MySQL 添加列,修改列,删除列

ALTERTABLE:添加,修改,删除表的列,约束等表的定义。

       

查看列:desc 表名;

修改表名:altertablet_bookrenametobbb;

添加列:altertable 表名 addcolumn 列名 varchar(30); 删除列:altertable 表名 dropcolumn 列名;

修改列名MySQL: altertablebbbchangennnnnhhint;

修改列名SQLServer:execsp_rename't_student.name','nn','column'; 修改列名Oracle:ltertablebbbrenamecolumnnnnnntohhint; 修改列属性:altertablet_bookmodifynamevarchar(22);

sp_rename:SQLServer 内置的存储过程,用与修改表的定义。 MySQL 查看约束,添加约束,删除约束 添加列,修改列,删除列

  

查看表的字段信息:desc 表名;

查看表的所有信息:showcreatetable 表名;

添加主键约束:altertable 表名 addconstraint 主键 (形如:PK_表名) primarykey 表名(主键字段);

添加外键约束:altertable 从表 addconstraint 外键(形如:FK_从表_主表) foreignkey 从表(外键字段) references 主表(主键字段);

        

删除主键约束:altertable 表名 dropprimarykey;

删除外键约束:altertable 表名 dropforeignkey 外键(区分大小写); 修改表名:altertablet_bookrenametobbb;

添加列:altertable 表名 addcolumn 列名 varchar(30); 删除列:altertable 表名 dropcolumn 列名; 修改列名MySQL: altertablebbbchangennnnnhhint;

修改列名SQLServer:execsp_rename't_student.name','nn','column'; 修改列名Oracle:altertablebbbrenamecolumnnnnnntohhint; 修改列属性:altertablet_bookmodifynamevarchar(22);

sp_rename:SQLServer 内置的存储过程,用与修改表的定义。

auto_increment 自动增减

altertablecity_namemodifyidintnotnullauto_increment;

Idintauto_incrementprimarykeynotnull, //设定一个自动增长的主键

#实现分组查询,每组最多显示5条记录

select c.id, c.name, c.countrycode, c.district,c.population from city c

where 5 > (select count(*) from city

where countrycode = c.countrycode and population < c.population) order by c.countrycode,c.population;

countrycode = c.countrycode表中相同的字段,按这个字段分别显示5条, population < c.population 相同字段中的不同数值进行比较, where 5 > (select count(*) 当小于5时,进行小括号语句

例如有一个表 id name 1 a 2 b 3 c 4 c 5 d

计算字段name中有多少个不相同的值

select count(distinct(name)) from xx

#4.显示所有旅游业务员的姓名和域名(电子邮件@之后的值) Select operator.name,SUBSTRING_INDEX( email, '@' , -1 ) as 'email 域名' from operator;

因篇幅问题不能全部显示,请点此查看更多更全内容